Liviu M Postat Mai 1, 2017 Partajează Postat Mai 1, 2017 In Arduino e folosit timer1: #else // everything else #define _useTimer1 typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t; #endif Citează Link spre comentariu
PKP98 Postat Mai 1, 2017 Partajează Postat Mai 1, 2017 Timer1 pentru pinii 9 si 10 adica OC1A si OC1B,dar pentru ceilalti pini cu PWM tot timer1 e folosit??? Citează Link spre comentariu
Liviu M Postat Mai 1, 2017 Partajează Postat Mai 1, 2017 (editat) Pinii sunt controlati "manual", nu in hardware (pulsurile sunt generate prin comenzi in isr): if( SERVO_INDEX(timer,Channel[timer]) < ServoCount && SERVO(timer,Channel[timer]).Pin.isActive == true ) digitalWrite( SERVO(timer,Channel[timer]).Pin.nbr,LOW); // pulse this channel low if activated ... if(SERVO(timer,Channel[timer]).Pin.isActive == true) // check if activated digitalWrite( SERVO(timer,Channel[timer]).Pin.nbr,HIGH); // its an active channel so pulse it high Timer-ul trebuie sa fie suficient de "mare" ca sa poata genera cele 20 ms pauza *) => e folosit un timer pe 16 biti: Servo.cpp - Interrupt driven Servo library for Arduino using 16 bit timers- Version 2 Copyright (c) 2009 Michael Margolis. All right reserved. *) Cel putin asa cred. Editat Mai 1, 2017 de Liviu M Citează Link spre comentariu
PKP98 Postat Mai 1, 2017 Partajează Postat Mai 1, 2017 Deci nu merge cu un timer pe 8 biti?Nu? Citează Link spre comentariu
Liviu M Postat Mai 1, 2017 Partajează Postat Mai 1, 2017 (editat) Nu stiu, ca nu prea stiu ce pot atmelele, dar poti sa socotesti si sa vezi.Iei frecventa ceasului, 20 ms perioada PWM, eventualele prescalere/postscalere si vezi daca numarand pana la 255 (8 biti) poti "acoperi" cerintele. Daca da, merge, daca nu, ghinion. Editat Mai 1, 2017 de Liviu M Citează Link spre comentariu
PKP98 Postat Mai 1, 2017 Partajează Postat Mai 1, 2017 Ok.O sa vad ce pot face. Multumesc! Citează Link spre comentariu
Postări Recomandate
Alătură-te conversației
Poți posta acum și să te înregistrezi mai târziu. Dacă ai un cont, autentifică-te acum pentru a posta cu contul tău.
Notă: Postarea ta va necesita aprobare moderator înainte de a fi vizibilă.