Wenn die LED an PortC2 leutet, ist sie also nach VCC verdrahtet. ABer mir fällt nix mehr dazu ein. Evtl sind die Fuses verstellt und der µC läuft nicht los, dann dürfte LED2 aber nicht brennen. Oder du hastn Fehler im Makefile (falls du make benutzt) und es wird kein neues HEX egeriert oder was anderes gebrannt als du denkst?
Oder du hast vergessen, die signal.h zu includen, die braucht man bis v3.4.4 oder so. Die gcc-Version siehst du mit Mach mal folgendes:
Code:
> avr-gcc -mmcu=atmega8 -Os timer0.c -o timer0.elf
> avr-objdump -d timer0.elf
und poste die Ausgabe. Wenn ein <SIGNAL> zu Beginn des ISR-COdes steht, dann wurde die ISR nicht eingetragen und du loops immer wieder via __bad_interrupt in den RESET rein. Falls <__vector_9> da steht, liegt der Fehler woanders
Code fehlerhaft:
Code:
0000005c <SIGNAL>:
5c: 80 91 60 00 lds r24, 0x0060
60: 8f 5f subi r24, 0xFF ; 255
62: 80 93 60 00 sts 0x0060, r24
66: 08 95 ret
Code korrekt:
Code:
0000005c <__vector_9>:
5c: 1f 92 push r1
5e: 0f 92 push r0
60: 0f b6 in r0, 0x3f ; 63
62: 0f 92 push r0
64: 11 24 eor r1, r1
66: 8f 93 push r24
68: 80 91 60 00 lds r24, 0x0060
6c: 8f 5f subi r24, 0xFF ; 255
6e: 80 93 60 00 sts 0x0060, r24
72: 8f 91 pop r24
74: 0f 90 pop r0
76: 0f be out 0x3f, r0 ; 63
78: 0f 90 pop r0
7a: 1f 90 pop r1
7c: 18 95 reti
Lesezeichen