Moin screwdriver,
screwdriver schrieb:
> Ohne mehr Quellcode ist es wie immer schwierig...
Na, ob der Bandwurm (mitten in der Bastelphase) mehr Klarheit
brächte...:-)
> Die CRC16 Checksumme ist 2 Byte lang, also word oder integer.
Klar; ist als Word definiert.
> Cks_tx = Rx_telegram(1)
> Da wird einer Word-Variablen ein Byte zugewiesen?
Nö. Rx_telegram ist wie folgt definiert:
dim rx_telegram(5) = word
rx_telegram(1) ist das erste Element des Array, also ne Word-Variable.
> Falls rx_telegramm(2) aus Bytearray ist, müßte das
> Cks_rx = Crc16(rx_telegram(3) , 8), oder falls WordVar
> Cks_rx = Crc16(rx_telegram(2) , 4) heissen.
Hm. Ich verstehe die Bascom-Hilfe anders.
Sei a = Crc16(b , c),
dann ist "b" das erste Element zur CRC-berechnung (also ne Word,
genauer rx_telegram(1)) und c die Anzahl der Bytes. Oder bin ich genau
hier auf dem Holzweg?
Cks_rx und Cks_tx werden ja auch völlig korrekt berechnet und sind
(fast) immer gleich.
Lediglich die CRC16 über das gesamte Telegramm (also incl. Checksumme in
rx_telegram(1)) wird nicht null. Was es werden sollte, wenn ich den
Algorithmus richtig verstanden habe...
Danke fürs Gedanken-machen!
Ralph