Zitat Zitat von w00za Beitrag anzeigen
Danke erstmal für die Antwort.

Das Problem ist, dass das Signal etwa alle 200ms gesendet wird und ich nicht weiß, wie ich das Signal nur einmal in einer Variablen abspeichern kann.
ich müsste also irgendwie Start und Ende abfragen und alles dazwischen abspeichern.
Nur das bekomm ich nicht hin.

Wenn mir da vielleicht einer helfen könnte...
Du Liest das Signal in eine Variable (wert_neu) ein und Kopierst diese nach (Wert_alt). beim nächsten Einlesen prüfst Du ob Wert_neu = Wert_alt ist und wenn ja, wird Wert_neu verworfen. Wenn nein Wert_alt = Wert_neu und es geht von vorne los.
Ausgegeben wird dann immer nur Wert_alt wenn dieser sich geändert hat.

Aber ehe Du nicht lesbare Daten bekommst wird das eh nichts! Oder klappt das jetzt? Start und Ende erkennt die Schnittelle selber am Start und Stopp Bit, was bei Dir ankommt sind schon die eigentlichen Nutzdaten. Das problem ist das Format der Daten, ein PC RS232 Signal ist gegenüber einem µC Signal invertiert.

µC...........0101010101
PC...........1010101010

Damit sich die beiden verstehen muss das PC signal inverteit werden und das macht man mit einer XOR Verküpfung.

PC..........10101010
EXOR.....111111111
---------------------------
...............01010101

Wie schon erwähnt, Bascom kann das auch automatisch erledigen. Das Start/Stopp Bit auswerten braucht man NUR wenn man die Empfangsroutine komplett in Assembler selber baut. Habe ich vor 20 Jahre mal gemacht, inklusive auto Baud Erkennung.

Gruß Richard

Gruß Richard