Libreria servo.h

Ciao a tutti,

è possibile trovare documentazione su come funziona la libreria standard servo.h?

Mi riferisco in particolare a sapere se e come utilizza gli interrupt e come fare a pilotare un numero elevato di servo.

Grazie

Vito

la libreria servo funziona grossomodo così:
si setta il timer1 a 1/2us
poi ad ogni interrupt si fa:
alzo il livello del servo setto il prossimo timer alla durata del livello alto.
seconda chiamata:
abbassò il livello e setto il timer per la durata di off
avanzo canale e ripeto dal punto uno.
Praticamente il servo funziona su una base di tempo di 20ms e il pwm dura al massimo 2ms , questo significa che puoi avere 10 canali per ogni periodo

/\__________________
__/\________________
____/\______________
______/\____________
________/\__________
__________/\________
____________/\______
______________/\____
________________/\__
__________________/\
|-------20ms--------|

quindi tramite l’interrupt comp_a non fai altro che gestire l’inizio e la fine di ogni canale.
Quindi più servo più timer.
C’è anche il modo per usare più servo con lo stesso timer, ma è molto complicato e per semplificare il lavoro bisognerebbe usare l’assembly per poter contare esattamente il tempo impiegato dal codice.

Qualcosa c'è:

http://playground.arduino.cc/Code/MegaServo

vitobiasi: Ciao a tutti,

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni e a leggere il regolamento se non lo hai già fatto: Regolamento Qui una serie di link utili, non inerenti al tuo problema: - qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - qui le pinout delle varie schede by xxxPighi: Pinout - qui una serie di link [u]generali[/u] utili: Link Utili

Grazie,

provo a rileggere meglio il file codice della libreria.

Saluti
Vito