Interrupt e conteggio tempo

Dec 16, 2007 1 Replies

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


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.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required