Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Tmr0


Messaggi consigliati

Inserito:

Ciao,

programmo da poco con il 16f84 ma non riesco a capire il funzionamento del TMR0, qualcuno me lo potrebbe spiegare un attimino... se ha voglia?

quello che so è che posso eseguire operazioni in contemporanea mentre il tmr0 lavora.... ma come lavora il timer?

dovrei fare un ritardo di 1minuto intanto che passa un minuto fare operazioni come...

operazioni matematiche e quando scatta il minuto eseguire

bsf portb,1

è possibile?


Inserita:

Il timer 0 e' un contatore indipendente a 8 bit che si incrementa a ogni ciclo di clock.

Quando passa da 255 a 0 alza un flag che puo' scatenare un interrupt che potrai gestire come vuoi .

Per avere una spiegazione completa del TMR0 puoi andare alla pagina di Tanzilli

Dove trovi un corso completo sul 16F84

ifachsoftware
Inserita:

In pratica imposti in valore nel contatore che viene decrementato man mano , quando arriva a 0 si ha un interrupt , nell'interrupt puoi per esempio conteggiare la somma di diversi interrupt per raggiungere un valore > di 255 , al raggiungimento del quale puoi fare quello che ti serve.

Ciao :)

Inserita:

no vorrei offendere tanzilli..... ma non ci si capisce niente di quel corso...... almeno sul TMR0

mostra un esempio che non serve praticamente a nulla infatti

movlw 10

movwf tmr0

loop

goto loop

non insegna niente sul fatto che scatta un interrupt ed io sono ancora punto a capo..... potete dirmi di più?

Inserita:
In pratica imposti in valore nel contatore che viene decrementato man mano , quando arriva a 0 si ha un interrupt
  • 3 weeks later...
Inserita:

scusate....

allora io ho un quarzo da 4mhz....

viene diviso per quattro....

poi decido di usare il prescaler e divido la fosc che è di 1mhz a 256 ottengo un clock di 3906.25 hz giusto?

quindi il contatore conta con frequenza di 3906.25hz....

quindi faccio un esempio

1 passano "3906.25hz" 2 passano 3906.25hz" 3 e via dicendo fino a 255 giusto?

sbaglio qualcosa?

Inserita:

Non e' cosi,

il timer 0 si aggiorna ogni ciclo di clock , quindi nel tuo caso il timer si resetta 3906/255=15 volte in un secondo.

Inserita:
quindi nel tuo caso il timer si resetta 3906/255=15 volte in un secondo.
Inserita:
Diciamo /256, ottenendo un periodo esattissimo di 65,536mS (tolleranza del quarzo a parte

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...