Timer deaktivieren

Gast #2606916
Lesenswert?

Hallo,

ich möchte einen Timer im Programm aktivieren und deaktivieren.
Welches Bit eignet sich dazu am besten, um den Mikrocontroller am 
meisten zu entlasten (Atmega644)?

Initialisiert und aktiviert wird er so:
1
TCCR0A |= (1<<WGM01);   // CTC Modus
2
TCCR0B = 1;         // kein Prescaler
3
TIMSK0 |= (1<<OCIE0A);   // Compareinterrupts erlauben
4
OCR0A = 99;     // Alle 100 Schritte-1 Timer Nullen

Reicht es, nur die Compareinterrupts zu verbieten? Funktionieren tut es.
Oder sollte man TCCR0B zusätzlich noch auf Null setzen?

Gruß
Gast #2606954
Lesenswert?

Kommt drauf an ob du den Timer weiterlaufen lassen willst und nur den 
Interupt Disablen willst oder ob du den Timer anhalten willst.
Wenn du den Timer anhalten willst dann setz in TCCR0B den prescaler auf 
0.
Gast #2606959
Lesenswert?

Holger schrieb:
> Welches Bit eignet sich dazu am besten, um den Mikrocontroller am
> meisten zu entlasten (Atmega644)?


8.11.2 PRR – Power Reduction Register

• Bit 5 - PRTIM0: Power Reduction Timer/Counter0
Writing a logic one to this bit shuts down the Timer/Counter0 module. 
When the Timer/Counter0
is enabled, operation will continue like before the shutdown.
Gast #2606967
Lesenswert?

mega schrieb:
> Holger schrieb:
>> Welches Bit eignet sich dazu am besten, um den Mikrocontroller am
>> meisten zu entlasten (Atmega644)?
>
>
> 8.11.2 PRR – Power Reduction Register
>
> • Bit 5 - PRTIM0: Power Reduction Timer/Counter0
> Writing a logic one to this bit shuts down the Timer/Counter0 module.
> When the Timer/Counter0
> is enabled, operation will continue like before the shutdown.

Angenommen, der Timer soll bis 100 zählen, dann von vorne beginnen und 
ich bin nun bei 50, wenn der Timer mit PRTIM0 beendet wird, startet er 
dann genau an dieser Stelle, wenn ich ihn wieder starte?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren