Hallo Zusammen,
wie oben schon steht habe ich ein ganz komisches Problem mit folgendem Code
Es ist so, dass wenn ich die ISR auskommentiere das Programm problemlos läuft. Sobald es aber mit kompiliert wird ist nach dem uart_init(..); und sei(); schluss und die int main(void); wird von vorne durchlaufen.Code:#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include "uart.h" #define UART_BAUD_RATE 9600 ISR(PCINT_vect) { uart_puts("A pin change interrupt occurred!"); } int main(void) { DDRB = 0x00; //set pins as output PORTB |= (1<<PB0) | (1<<PB1); //activate pullup PCMSK |= (1<<PCINT0) | (1<<PCINT1); //mask port GIMSK |= (1<<PCIE); //activate PCinterrupts uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) ); sei(); while(1) { uart_puts("Noch alles in Ordnung?\r\n"); _delay_ms(1000); } return 0; }
D.h. der µC steckt dann in einer Endlosschleife fest.
Ich programmiere mit AVRStudio mit WinAVR plugin.
Ach ja, die UART-Routinen sind von Peter Fleury und der µC ist ein ATTiny2313.
Kann mir jemand einen Hinweis geben woran das liegen könnte?
Vielen Dank!
MfG, Marten83







Zitieren

Lesezeichen