Go Down

Topic: funzione millis() (Read 4 times) previous topic - next topic

leo72


scusate se sono OT  :smiley-sweat: ma mi trovo a lavorare con un PIC in questo momento... sapete se sui PIC c'è una funzione tipo millis() o qualcosa di simile? ormai mi sono affezionato a questa funzione :smiley-mr-green:
grazie ;)

La funzione millis() è una funzione in C. Puoi aprire il core di Arduino, prendere il codice e riadattarlo all'uso sui PIC, che hanno anch'essi i timer come l'Arduino.

?R

infatti... stavo pensando anch'io di usare i timer e di crearmi qualcosa, perchè ho visto che in giro fanno così, adesso vado a guardarmi millis di arduino...
grazie ;)
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

leo72


infatti... stavo pensando anch'io di usare i timer e di crearmi qualcosa, perchè ho visto che in giro fanno così, adesso vado a guardarmi millis di arduino...
grazie ;)

No potrebbe essere altrimenti. Per avere un riferimento temporale che abbia un minimo di precisione devi delegare il compito di aggiornare il contatore ad un qualcosa che soffra il minimo le influenze esterne. Quale miglior "posto" di una routine di interrupt chiamata dall'overflow di un contatore interno, ossia di un timer hardware la cui scansione temporale è gestita direttamente dal clock del micro?  ;)

Se hai bisogno, chiamami che ormai coi timer mi sono fatto una cultura  :smiley-sweat:

?R

ok grazie ;)
dove la trovo la funzione millis dell'arduino?  :~
Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

leo72

Più che la funzione millis, devi guardare tutto. Da come viene impostato il timer 0 a come vengono recuperati i valori.
Trovi tutto in hardware/arduino/cores/arduino/wiring.c

Ti consiglio di leggere anche il codice della mia libreria swRTC. Lì imposto il timer 2, ma è lo stesso identico principio e gli stessi valori (cambiano solo i nomi dei registri) perché sia il timer 0 che il timer 2 sono ad 8 bit.

Go Up