Ups ja du hast recht die beiden Variablen werden zu beginn mit 1 initialisiert.
Sinn des Programmes ist es, zyklisch von weiteren an den µC angeschlossenen µC in einer Ringabfrage Daten abzurufen und zu sammeln. Wenn alle Teilnehmer durchlaufen sind, wird wieder mit dem ersten angefangen. Das passiert freilaufend, also ohne Unterbrechung. Es sind verschiedene Mechanismen eingebaut um eine Unterbrechung in der Ringabfrage zu erkennen, zu bereinigen und diese dann neu anzustoßen. Über die UART1 können dann die gesammelten Daten jederzeit abgerufen werden. Die Daten der angeschlossenen Karten werden in einem Ringpuffer gespeichert und immer wieder mit aktuelleren Daten überschrieben.
Das ganze System funktioniert einwandfrei. Ich bekomme eben nur gelegentlich eine Unterbrechung in der Ringabfrage ausgegeben, die an der oben vermerkten Stelle passiert. Wo angeblich die "R_bus_empfangene_quelladresse" nicht = der "Pruef_kartenadresse".
Ich lasse mir dann sofort beide Werte ausgeben und zu diesem Zeitpunkt stehen aber die gleichen Werte in beiden variablen! Ich verstehe also nicht warum er dann in den Else-Teil der abfrage springt!? Der gesammte Rest des Programmes funktioniert ohne Probleme und da sind noch etliche If Then Else abfragen drin!? Wieso gibt es an keiner anderen Stelle mal ein Problem??? Auch die Variablen werden nur in diesem Programmteil verwendet!
Kann das irgendwie ein Bug sein in BASCOM?
UPDATE:
Ich habe die beiden fehlenden Initialisierungen oben Im Code ergänzt.
Lesezeichen