Gast
#181731
Hallo, gleich meine erste C-Portierung hakt, die Timer0-ISR wird nie
angesprungen. Hab das Programm schon auf ein paar Zeilen reduziert,
dehalb direkt statt im Anhang:
#include <avr/io.h>
#include <avr/interrupt.h> //wg. sei()
#include <avr/signal.h>
int main(void){
DDRB = 0xFF; //Port B als Ausgang
PORTB = 0xFF; //Leds an
TIMSK = (1<<TOIE0);//Timer0 Interrupt freigeben
TCNT0 = 255; //Startwert des Timers laden
TCCR0 = 0b00000101; //Timer starten mit Vorteiler 1024
sei(); //Interrupts freigeben
while(1); //Warten für immer
}
void signal(SIG_OVERFLOW0){
PORTB = 0; //Leds aus
}
Zusatzinfo: der Compiler meckert folgendes an:
In file included from main.c:2:
C:/WinAVR/avr/include/avr/interrupt.h:117:1: warning: "__EICR"
redefined
C:/WinAVR/avr/include/avr/interrupt.h:114:1: warning: this is the
location of the previous definition
main.c:15: warning: function declaration isn't a prototype
main.c: In function `signal':
main.c:15: warning: type of "__vector_9" defaults to "int"
Wer kann mir helfen?