Hallo Leute,
ich bin seit einigen Wochen dabei mich dem Attiny414 zu widmen und bin
nach viel hin und her jetzt auf ein Problem gestoßen, dass ich bis jetzt
nicht duch googeln lösen konnte.
Wie der Titel schon sagt, betrifft mein Problem den Timer B, den ich
gerne im Periodic Interrupt mode betreiben würde.
Laut Datenblatt überhaupt keine Hürde:
21.3.2 Initialization
By default the TCB is in Periodic Interrupt mode. Follow these steps to
start using it:
• Write a TOP value to the Compare/Capture register (TCB.CCMP).
• Enable the counter by writing a '1' to the ENABLE bit in the Control A
register (TCB.CTRLA).
The counter will start counting clock ticks according to the prescaler
setting in the Clock Select bit
field (CLKSEL in TCB.CTRLA).
• The counter value can be read from the Count register (TCB.CNT). The
peripheral will generate an
interrupt when the CNT value reaches TOP.
Natürlich muss noch der Interrupt eingeschalten werden...
########################################################################
###
Nun zum Eigentlichen Problem:
Der Timer läuft und generiert Interrupts, aber nicht in den Abständen,
die ich konfiguriert habe.
Egal welchen Top Wert ich in das CCMP Register schreibe, die
Ausgangsfrequenz bleibt konstant bei 140 KHz.
Ich hoffe es ist einfach nur ein Denkfehler meinerseits und nichts
unmögliches
(Code im Anhang)
Dankeschön im Voraus
Edit:
Lösung:
Interruptflag löschen
1 | ISR(TCB0_INT_vect)
|
2 | {
|
3 | cnt ++;
|
4 | sbi(TCB0_INTFLAGS,0);
|
5 | tbi(PORTA_OUT,1);
|
6 | }
|
Hätt ich auch früher probieren können...