Guten morgen,
ich habe ein Problem beim Programmieren einer UART Kommunikation. Ich möchte, das beim Empfang einer Zeichenfolge ein Interrupt ausgelöst wird. In der Interrupt Routine soll dann in eine Funktion zur Befehlsprüfung gesprungen werden. Das Problem ist nur, das nie ein Interrupt ausgelöst wird.
Hier sind die entprechenden Teile aus meinem Programm:
ISR:
UART Init:Code:void __attribute__((__interrupt__, auto_psv)) _U1RXInterrupt(void) { UART1_empfang(); IFS0bits.U1RXIF = 0; }
UART Empfang:Code:void UART1Init(int BAUDRATEREG1) { U1BRG = BAUDRATEREG1; U1MODE = 0x8000; U1STA = 0x8400; IFS0bits.U1RXIF = 0; }
und UART1GetChar:Code:void UART1_empfang(void) { int i; char c; char* s; s=befehl; i=0; do { c=UART1GetChar(); if( c!='\r') { *s=c; s++; i++; } } while( c!='&' ); *s=0; befehlspruefung(); }
Ich hoffe ihr könnt mir hilfreiche Tipps geben.Code:char UART1GetChar() { char Temp; while(IFS0bits.U1RXIF == 0); Temp = U1RXREG; IFS0bits.U1RXIF = 0; return Temp; }
mit freundlichen Grüßen







Zitieren

Lesezeichen