Hallo,
mein Projekt (mit ATMega32) beinhaltet u.a. DCF77-Empfang, den ich ueber
einen Interrupt (INT0, an PD2) realisiert habe, der auf die Flanken des
Signals reagiert. Funktioniert soweit wunderbar.
Nun wollte ich noch eine PWM verwenden, um die Hintergrundbeleuchtung
des Displays zu dimmen. Dazu habe ich noch den Timer2 angeschmissen:
1 | TCCR2 |= (1<<CS20);
|
2 | TCCR2 |= (1<<WGM21) | (1<<WGM20);
|
3 | TCCR2 |= (1<<COM21) | (0<<COM20) ;
|
4 |
|
5 |
|
6 | DDRD |= (1<<PD7);
|
7 |
|
8 | pwmValue = 255;
|
9 | OCR2 = pwmValue;
|
Soweit, so gut. Display leuchtet maximal (da pwmValue = 255), der
Interrupt fuer DCF wird weiter munter gefeuert.
Aendere ich jetzt pwmValue auf irgendwas kleiner als 255, wird hoert
das einfach auf. Die Interrupt-Funktion wird einfach nicht mehr
aufgerufen. (die PWM funktioniert aber wunderbar).
Hat jemand eine Idee, woran das liegen koennte?
Viele Gruesse,
Martin
Nachtrag:
Bei OCR2 = 0 funktioniert es so halbwegs, da wird der Interrupt
zumindest manchmal ausgeloest.