Gast
#1774615
Hallo, ich habe eine 32-Bitvariable in der ich mir die Anzahl von zu empfangenden Datensätze speichere. Für jeden Datensatz wird ein Bit gesetzt. Beim Empfang wird das entsprechende Bit über eine andere Variable gelöscht.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
Ich habe mir die Variablen über die serielle Schnittstelle ausgeben lassen. Das Setzen der einzelnen Bits funktioniert. Auch das Löschen. Allerdings nur bis message_sequence_counter = 14 ist. Nach dem Löschen wird noch ordnungsgemäß fehlendeDatensaetze der Wert 1f8000 angezeigt. Sobald wie jetzt aber message_sequence_counter = 15 ist und das bitweise löschen erfolgt ist danach der gesamte Wert 0. Es sollte aber dann 1f0000 sein. Ich kann keinen counter nehmen und einfach runterzählen. Es muss sichergestellt sein, dass doppelt ankommende Datensätze nur einmal verwertet werden. Ich habe den Eindruck als liegt es am "<<". Einen Fehler in meiner Software will ich nicht ausschliessen sehe ich derzeit aber nicht. Kann mir hier jemand einen Tipp geben woran es liegt? Danke Andreas