ok grazie mille ![]()
Il primo dato da conoscere è la frequenza del micro, successivamente il prescaler del timer scelto e la sua risoluzione.
Con questi valori devi prendere la calcolatrice e trovare una combinazione che ti dia un overflow ogni x. Ovviamente questo x deve essere intero, non decimale. A questo punto imposti il timer in modalità contatore (quindi no PWM esterno) ed attivi un interrupt sull'overflow
Con il timer ad 8 bit dell'Atmega ed i suoi prescaler si possono avere overflow al millesimo di secondo. Ecco quindi ricreata la millis: ogni 1 ms il contatore va in overflow, l'interrupt lo intercetti con una ISR e dentro la ISR metti un semplicissimo millis++ ![]()
ok molto interessante, grazie mille! ![]()
ma sarà per un'altra volta, ho risolto tutti i miei problemi sostituendo il pic con un atmega328 ![]()
er_like_no_other:
ok molto interessante, grazie mille!
ma sarà per un'altra volta, ho risolto tutti i miei problemi sostituendo il pic con un atmega328
Ah ah ah XD XD
er_like_no_other:
ok grazie mille
Sarebbe più corretto scrivere "Grazie millis"
![]()
ahaha beh non era solo millis il problema ![]()
è che ormai mi sono abituato a programmare con il codice di arduino e per scrivere tutto il codice ci ho messo quasi un ora, mentre col pic stavo diventando matto...
(il progetto consisteva in un termostato per una gabbia di un camaleonte, con gestione di un lcd e del riscaldamento e raffreddamento, con la possibilità di settare il range di temperatura che si vuole mantenere)
da notare che la programmazione del pic dovrebbero insegnarmela a scuola, mentre tutto quello che so sull'arduino l'ho imparato qui sul forum ![]()