So, hab mal alles (für die Fehlersuche) unnötige rausgeschmissen. Siehe
Anhang.
Des weiteren fehlen die LCD routinen, aber das sind die bekannten
"AVR-GCC-Tutorial/LCD-Ansteuerung"
Nochmal eine kurze Fehlerbeschreibung:
Eigentlich dürfte die while Schleife
1 | if(stateSemicolon<5){
|
2 | while(1){
|
3 | cli();
|
4 | lcd_setcursor(0 ,1 );
|
5 | lcd_string("Fehler");
|
6 | }
|
nie erreicht werden,
da direkt davor folgender Ausdruck steht:
1 | else if(stateSemicolon>4 && stateSemicolon<10 && counterMain==0){
|
Von der RS232 Schnittstelle werden permanent Nachrichten mit je 150
Zahlen getrennt durch ';' empfangen.
Zu Beginn jeder Nachricht wird ein '?' gesendet, an dem dann der
Nachrichtenbeginn erkannt wird.
Zum testen sende ich dem yC 30-40 Nachrichten mit je 150 Zahlen mit
einer Geschwindigkeit von 57600Baud. Der Fehler tritt manchmal sehr
schnell auf (geschätzt: nach einigen wenigen Nachrichten) manchmal aber
auch erst sehr spät (irgendwann nach der 20. bis 30. Nachricht oder noch
später).
Die Frage war, wie es möglich ist, dass das Programm in die while
Schleife läuft. stateSemicolon zählt nach oben.
Viele Grüße
Ben