Timmer B stoppen bei ATTiny1614

Gast #6249367
Lesenswert?
• ▲
▼
Hallo,

ich versuche mich am ATTiny1614 mit dem Atmel Studio. Ich verwende den 
TimerB wie folgt:
1
void Init(){
2
  TCB0.CCMP = F_CPU / 1000; //1ms
3
  TCB0.INTCTRL = TCB_CAPT_bm;
4
  TCB0.CTRLA = TCB_ENABLE_bm;
5
}
6

7
volatile uint16_t count = 0;
8
ISR(TCB0_INT_vect)
9
{
10
  TCB0.CTRLA = 0;
11
  count++;
12
}

Ich dachte mit CTRLA auf 0 setzen, könnte ich den Timer wieder stoppen. 
Das geht leider nicht. Wie kann ich den Timer wieder stoppen oder muss 
ich den Interrupt disable um bei start den CNT auf 0 setzen?

Viele Dank für alle Tipps

Der Wurm
Beitrag #6249401 wurde von einem Moderator gelöscht.
Gast #6249432
Lesenswert?
• ▲
▼
Ich teste das mit dem Atmel ICE und habe einen Breakepoint auf die Zeile 
"count++;".
Wenn ich dann F5 drücke wird das immer und immer wieder aufgerufen. Wenn 
ich den Interrupt sperre

TCB0.INTCTRL = 0;

Dann ist Ruhe.
(Firma: L-E-A) #6249456
Lesenswert?
• ▲
▼
Hozlwurm schrieb:

> Ich dachte mit CTRLA auf 0 setzen, könnte ich den Timer wieder stoppen.
> Das geht leider nicht. Wie kann ich den Timer wieder stoppen oder muss
> ich den Interrupt disable um bei start den CNT auf 0 setzen?

Woraus schließt Du, dass der Timer weiterläuft? Wenn der Interrupt 
weiterhin ausgelöst wird, wäre es auch möglich, dass das Irpt-Flag nicht 
beim Einsprung in den Handler gelöscht wird.

Das Datenblatt meint dazu: "Bit 0 – CAPT Interrupt Flag
This bit is set when an interrupt occurs. The interrupt conditions are 
dependent on the Counter Mode (CNTMODE) in TCBn.CTRLB. This bit is 
cleared by writing a '1' to it or when the Capture register is read in 
Capture mode."

Woraus ich schließen würde, dass das Flag explizit gelöscht werden muss, 
wenn man nicht das Capture-Reg. liest.

Grüßle
Volker
(Firma: L-E-A) #6249514
Lesenswert?
• ▲
▼
Hozlwurm schrieb:

> Ich das so gemacht wie im Datenblatt beschrieben und jetzt hält er auch
> an.

Wunderbar, freut mich :-)

Übrigens ist bei den neuen AVRs auch immer ein Blick ins Errata-Sheet 
nötig. Ich habe schon Stunden damit verbracht, Peripherie anzusprechen 
*), die lt. Datenblatt vorhanden sein sollte -- bis ich ins Errata 
guckte und feststellen musste, dass diese in den vertriebenen 
Maskenrevisionen (noch) nicht implementiert wurde.

Grüßle
Volker

*) ATxmega32D4: REV B no TWIE available!

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.