Atmega88, Timer2 und PD3

#2996709
Lesenswert?

Hallo,

ich habe hier gerade ein kleines Problem mit Timer2 und PD3 auf einem 
Atmega88:

An Port D sind Taster und Kontrolleds angeschlossen:
+5V-R470-LED-PDx-Taster-GND

Im Wechsel werden die Taster abgefragt, entprellt und der LED-Status 
wiederhergestellt bzw. nach Tastendruck angepasst.

Soweit funktioniert das auch wunderbar. Sobald ich allerdings Timer 2 
initialisiere,
kann ich PD3 nicht mehr als Ausgang benutzen. Der Pin bleibt high, 
unabhängig vom Eintrag in PORTD. Als Eingang konfiguriert werden 
Tastendrücke weiterhin erkannt.


TCCR2A = (1<<COM2B1)|(1<<COM2B0); // Mode 0 (Normal)
TCCR2B = (1<<CS20);                 // Clk/1 (488Hz PWM)
OCR2A = 255;
OCR2B = 1;
TIMSK2 = (1<<OCIE2B);

Ich vermute, dass das mit "OC2B, Output Compare Match output" zu tun 
hat. Im Datenblatt steht:
The PD3 pin can serve as an external output for the Timer/Counter0 
Compare Match B. The PD3 pin has to be configured as an output (DDD3 set 
(one)) to serve this function. The OC2B pin is also the output pin for 
the PWM mode timer
function.

Heißt das jetzt, dass PD3 prinzipiell nicht als Ausgang verwendbar ist, 
sobald ich Timer2 benutze? Ich bin jetzt seit einer gefühlten Ewigkeit 
dabei das Datenblatt zu wälzen, und habe die ganze Zeit das Gefühl die 
entscheidende Stelle zu überlesen.

Tom
#2996783
Lesenswert?

Argh! Der Wald und die Bäume!

Bits 5:4 – COM2B1:0: Compare match output B mode
These bits control the Output Compare pin (OC2B) behavior. If one or 
both of the COM2B1:0 bits are set, the OC2B output overrides the normal 
port functionality of the I/O pin it is connected to.

Da hab ich mich durch meinen eigenen Kommentar erfolgreich verrannt.

Danke fürs Zaunpfahlprügeln! :)

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