Vai al contenuto
PLC Forum


Timer Pic18


RESNIC

Messaggi consigliati

Buongiorno a tutti!!!!

Scusatemi, ma c'è qualcosa che non mi è chiara....mi potete dare conferma di ciò?!

Devo utilizzare un Timer TMR0 ove settato un valore lui conta fino a tale valore e poi mi genera l'interrupt... però se ho ben capito il timer mi genera l'iterrupt solo quando va in Overflow, quindi per fare questo gioco devo caricare nel registro la differenza tra il valore massimo e quello che voglio sia contato, in questa maniera ho l'inerrupt a tempo come volevo io!!! Giusto?????

Grazie a tutti!!!

Link al commento
Condividi su altri siti


Ciao,

Si, hai detto bene .

Il TMR0 genera un interrupt quando passa da hFF a h00 a 8bit o da hFFFF a h0000 a 16bit.

Quindi se tu vuoi per esempio generare l'int dopo 100 cicli e ammettiamo che hai programmato il tmr0 a 8bit

devi caricare nel timer 256-100=156 .

Link al commento
Condividi su altri siti

Grazie dlg

Avevo capito bene.... ma quando dici cicli, intendi? devo guardare la frequenza del clock, ed 1 ciclo è il periodo del clock?

GRASSSSSSSSSSSSSIE

Link al commento
Condividi su altri siti

Per ciclo intendo che , nel caso che aggiorni il tmr0 con il clock interno la frequenza sara' la frequenza di clock/4.

Es. se il tuo clock e' a 4 mhz la freq del tmr0 sara' 1Mhz se non ci metti un prescaler.

Ovvero il TMR0 incrementera di 1 ogni 1 microsecondo.

Spero di essere stato chiaro...

Link al commento
Condividi su altri siti

La frequenza dipende dal clock della macchina.

Se vuoi ti insegno un metodo per vedere il tempo che ci mette (per avere conferma dei calcoli) puoi usare l'MPLAB , settare come debugger l'MPLAB SIM , in Debugger->Settings imposti come processor frequency la frequenza del quarzo.

Poi metti un break point nella prima istruzione dell'interrupt del timer.

Mandi in run il programma , quando arrivi sul break point resetti il conteggio , fai ripartire , quando ritorna sul break point , ti dice il tempo che ha impiegato.

Ciao :)

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...