Gast
#76837
Hi, Ich weiß nicht mehr weiter. Ich versuche meinen Mega8 via UART Daten vom PC empfangen zu lassen. Jedoch scheint er "abzustürzen" (*) sobald ich ein einziges Zeichen sende. (*) Externe Interrupts funktionieren nicht mehr und der Main-Loop wird nicht weiter ausgeführt. PWMs arbeiten aber weiter (testweise angeschlossene LEDs bleiben gedimmt) Es sieht so aus, als würde der Recieve-Interrupt nicht gefunden werden (wenn ich ihn weglasse gibt es die gleichen Symptome) aber ich finde meinen Fehler nicht. Argh! Ich benutze einen avr-gcc (3.3 20030512) auf Debian Linux. Danke für alle Hinweise, Levin Das sind die wesentlichen Codeschnipsel: --------------------- INTERRUPT(SIG_UART_RECV) { sbi(PORTB, PINB0); //Debug: LED anschalten (wird nie ausgeführt) unsigned char b = UDR; //Byte aus RX-Buffer lesen } void init(void) { sbi(PORTB, PINB0); //B0 als Ausgang definieren //ein paar weggeschnittene PWM-Definitionen, (funktionieren) //externe Interrupts aktiviert (funktioniert einwandfrei) //UART outb(UBRRH, UART_SPEED>>8); //Baudrate outb(UBBRL, UART_SPEED); sbi(UCSRB, RXEN); //Recieve Enable //Wenn die folgende Zeile fehlt stürzt nix ab sbi(UCSRB, RXCIE); //Recieve Interrupt Enable } int main(void) { init(); while(1) { //PWM-Ausgänge blinken lassen und ein paar Delays } }