Interrupt e conteggio tempo

Avrei bisogno di capire bene quali calcoli effettuare per risalire, ad esempio, al numero di impulsi che servono per l'overflow del timer0 in base ad il clock esterno.

Io faccio questo conto ma non so se va bene:

HS = 8 Mhz prescaler =000 TMR0=0

Il ragionamento è il seguente; la frequenza da 8 Mhz viene divisa per 4 quindi uguale a 2 Mhz. Questa a sua volta incrementa il timr0 (un interrupt) ogni 256 impulsi, non è ulteriormente divisa dal prescaler, quindi :

1 interrupt ogni =(2000000/256)=7812,5 impulsi di clock/4 equivalenti a 31250 impulsi del clock a 8 Mhz. Questo fa si che essendo il tempo di ogni impulso di clock = a 8Mhz ha un periodo di 1/8Mhz=125uS, quindi il timer mim produce un interrupt ogni 31250*125uS=3,9 ms.

E' giusto il mio ragionamento ???

Grazie

Reply to
Giovanni
Loading thread data ...

Il giorno Sun, 16 Dec 2007 12:10:13 +0100, "Giovanni" ha scritto:

Non mi trovo: se il clock è 8 MHz e il corrispondente instruction rate è 2 MHz, allora un ciclo istruzione corrisponde a 1/(2 MHz), cioè 500 ns.

L'overflow di TMR0 si verifica ogni 256 cicli istruzione, quindi ogni 500 ns *

256 = 128 us.
Reply to
Luigi C.

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.