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
Tom M. schrieb: > Heißt das jetzt, dass PD3 prinzipiell nicht als Ausgang verwendbar ist, > sobald ich Timer2 benutze? Nur wenn du den Timer explizit anweist, den Pin zu benutzen.
1 | TCCR2A = (1<<COM2B1)|(1<<COM2B0); |
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! :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.