Was wolltest du eigentlich mit
bezwecken?
Jetzt muss ich direkt mal überlegen, was das eigentlich macht.
Ok, habs. Das ist eine No-Operation. MCUCR mit 0xFF zu verunden ändert
nichts am MCUCR.
Lass halt mal den Interrupt weg. Wenn der die ganze Zeit feuert (welchen
Modus hast du eigentlich eingestellt), dann kommt deine main-Loop nur
sehr, sehr langsam vorran. So langsam, dass es eine halbe Ewigkeit
dauert, bis dann irgendwann PD5 mal auf Low geht.
Warum immer so komplizierte Testprogramme. Wenn du wissen willst, ob
dein µC am PD5 einen Schaden hat oder nicht, dann reicht
1 | #include <avr/io.h>
|
2 |
|
3 | int main()
|
4 | {
|
5 | DDRB |= ( 1 << PB5 );
|
6 |
|
7 | while( 1 )
|
8 | PORTB &= ~( 1 << PB5 );
|
9 | }
|
um den Pin auf Low zu sehen und
1 | #include <avr/io.h>
|
2 |
|
3 | int main()
|
4 | {
|
5 | DDRB |= ( 1 << PB5 );
|
6 |
|
7 | while( 1 )
|
8 | PORTB |= ( 1 << PB5 );
|
9 | }
|
um den Pin auf High zu sehen.
Alles andere zusätzliche im Programm sind erst mal nur zusätzliche
mögliche Fehlerquellen. Und das ist nicht besonders zielführend, wenn du
nur wissen willst, was mit PB5 los ist.