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 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??? 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 Link spre comentariu
PKP98 Postat Mai 1, 2017 Partajează Postat Mai 1, 2017 Deci nu merge cu un timer pe 8 biti?Nu? 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 Link spre comentariu
PKP98 Postat Mai 1, 2017 Partajează Postat Mai 1, 2017 Ok.O sa vad ce pot face. Multumesc! Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum