Gast
#3037854
Hallo zusammen, ich habe ein Programm geschrieben, um ein IR-Signal zu dekodieren und die übertragenen Daten auf einem 4x7 LED Display anzuzeigen. Code siehe Anlage. Leider habe ich das Phänomen, dass das Programm nicht zuverlässg funktioniert, sondern eher "sporadisch" - d. h. ich sende immer wieder das gleiche Signal, und so in der Hälfte der Fälle wird es richtig entschlüsselt und angezeigt (State Machine zum Empfang durchlaufen) - in der anderen Hälfte nicht (leider erkenne ich keine wirkliche Regelmäßigkeit...). Manchmal scheint das Programm aus dem Modus 1 "Anzeige Ergebnis" nicht mehr richtig in den Modus 0 "IR-Signal empfangen" zurück zu kommen. Ich hatte vor ein paar Tagen schon mal ähnliche Probleme, die auf verschiedene Anfängerfehler zurückzuführen waren (siehe Thread Beitrag "Compiler Optimization Level (-O1) ändert Ablauflogik?") Nun denke ich, alle Eure Hinweise beachtet zu haben und finde (wieder mal) partout keine Fehler im Programm... Ist da noch ein genereller Fehler in der Ablauflogik und/oder Interruptsteuerung drin, so dass das Programm nur "auf gut Glück" mal funktioniert? Und noch ein Randproblem: Ich habe eine Schleife zur Ausgabe der empfangenen Daten: <c>for (i=0;i<4;i++) { displayZahl(datenbyte[i],dauer); _delay_ms(500); }</c> Da ist es so, dass manchmal (unregelmäßig) zwei Zahlen ohne die gewünschte Pause von einer halben Sekunde angezeigt werden... Hat jemand eine Idee? Vielen Dank!