ATtiny45 TCNT1 läuft nicht

OP #2448048
Lesenswert?
• ▲
▼
Hallo zusammen,

ich bekomme bei einem ATtiny 45 weder den TCNT1 zum Laufen noch mit 
einem Comparewert im Register OCR1A ein Togglen auf PB1 hin.
Dazu gibt es folgende Befehle:

; Systemtakt 2 MHz laut Fusebits, Vorteiler 16, OC1A Toggle Mode an PB1
ldi r16, (1<<CS10)|(1<<CS12)|(1<<COM1A0)
out TCCR1,r16
; Ausgabewert für Frequenz an PB1
ldi r16, wert
out OCR1A,r16

Im Timer 0 läuft ein separate ISR für Compare Match A mit folgender 
Einstellung problemlos.

ldi r16, (1<<WGM01)
out TCCR0A, r16
ldi r16, (1<<CS01)|(1<<CS01)  ;Takt mit Vorteiler 256
out TCCR0B, r16
ldi r16,0x27
out OCR0A,r16      ;Konstante 27Hex
ldi r16,(1<<OCIE0A) ;Timer/Counter0 Compare Match A Interrupt Enable
out TIMSK,r16
sei


Wo liegt der Fehler bzw. was habe ich übersehen?

Vielen Dank im Voraus.
Gast #2448076
Lesenswert?
• ▲
▼
Hi

>Wo liegt der Fehler bzw. was habe ich übersehen?

Der Timer1 vom ATTiny45 'tickt' etwas anders, als die üblichen 
AVR-Timer. Da hilft nur intensives Datenblattstudium.
Beispielsweise werden CTC, PWM1A, PWM1B über einzelne Bits 
eingeschaltet. CTC funktioniert nur mit OCR1C....

MfG Spess
OP #2448090
Lesenswert?
• ▲
▼
spess53 schrieb:
> Hi
>
>>Wo liegt der Fehler bzw. was habe ich übersehen?
>
> Der Timer1 vom ATTiny45 'tickt' etwas anders, als die üblichen
> AVR-Timer. Da hilft nur intensives Datenblattstudium.
> Beispielsweise werden CTC, PWM1A, PWM1B über einzelne Bits
> eingeschaltet. CTC funktioniert nur mit OCR1C....

OK, wenn ich das richtig verstehe, kann ich nur über den nicht 
beabsichtigten Weg der PWM vielleicht zum Ziel kommen.
Gast #2448106
Lesenswert?
• ▲
▼
Hi

>OK, wenn ich das richtig verstehe, kann ich nur über den nicht
>beabsichtigten Weg der PWM vielleicht zum Ziel kommen.

Kommt auf dein Ziel an. Du kannst auch bei CTC einen beliebigen Pin im 
Interrupt togglen. Beim ATTiny45 geht das einfach mit sbi PINB,x (ja, 
eine Ausgabe auf das PIN-Register).

MfG Spess
OP #2448216
Lesenswert?
• ▲
▼
spess53 schrieb:
> Kommt auf dein Ziel an. Du kannst auch bei CTC einen beliebigen Pin im
> Interrupt togglen. Beim ATTiny45 geht das einfach mit sbi PINB,x (ja,
> eine Ausgabe auf das PIN-Register).

Ja, danke für den Tipp.
Also das Ziel ist die Ausgabe einer Frequenz auf PB1 über Toggle Mode 
ohne Belastung des Prozessors. Im Moment scheitere ich daran, den Timer 
1 generell zum Laufen zu bekommen, dann könnte ich notfalls noch über 
Interrupt und sbi PINB,x "toggeln".
Gast #2452468
Lesenswert?
• ▲
▼
Hi

> Sicherlich war es ein bekannter Bug, mir aber nicht.

Der Bug ist sogar Atmel bekannt. Zu finden unter den 'Known Issues' in 
der Assembler Hilfe. Sollte man sich wenigsten einmal durchgelesen 
haben.

MfG Spess

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