Gast
#2324925
Hallo habe folgendes Programm: Wenn von einem JAVA Programm aus über die Serielle Schnittstelle in diesem Fall ein "A" geschickt wird soll die LED am Pin 7 am Port A leuchten. Andernfalls soll sie ausgeschaltet bleiben. Aber nach meine Programm nach geht da gar nichts. Meiner Meinung nach passt bei dem Befehl uart_gets etwas nicht, weil wenn ich Integer werte sende funktioniert alles perfekt. uint8_t uart_getc(void) { while (!(UCSRA & (1<<RXC))) ; return UDR; } void uart_gets( char* Buffer, uint8_t MaxLen ) { uint8_t NextChar; uint8_t StringLen = 0; NextChar = uart_getc(); // Warte auf und empfange das nächste Zeichen // Sammle solange Zeichen, bis: // * entweder das String Ende Zeichen kam // * oder das aufnehmende Array voll ist while( NextChar != '\n' && StringLen < MaxLen - 1 ) { *Buffer++ = NextChar; StringLen++; NextChar = uart_getc(); } // Noch ein '\0' anhängen um einen Standard // C-String daraus zu machen *Buffer = '\0'; } main: int main () { uint8_t a=0; char line[8]; char line2[8]= "A"; init(); while(1) { if ( (UCSRA & (1<<RXC)) ) { uart_gets(line,8); if(strcmp(line,line2)==0) { PORTA|= (1<<PA7); } else { PORTA&= ~(1<<PA7); } } } return 0; }