1)
Byte_1 = low(crcval) ' das ist das eine Byte von dem word
Byte_2 = high(crcval) ' das ist das andere
2)
von sich aus verdreht er da nix. wie kommst du drauf ?
Druckbare Version
1)
Byte_1 = low(crcval) ' das ist das eine Byte von dem word
Byte_2 = high(crcval) ' das ist das andere
2)
von sich aus verdreht er da nix. wie kommst du drauf ?
1.
hab mir mal die empfangenen bytes im lcd anzeigen lassen, und die sind immer irgendwie nicht in der richtigen reihenfolge.ab und zu, gibt er auch anstelle von 115 nur den wert 112 aus.
2.
kann es sein, das ich nach jedem empfang eines bytes meinen buffer löschen soll, weil immer wenn ich die empfangsprozedur öffter als 1mal durchführe bekopmme ich einen anderen wer:
1. durchlauf: z.b. 001 005 176 156 099 156 176 002
2... durchlauf: 003 006 143 178 005 070 090 076
die werte sind nur erfunden.
mfg
xeus
er gibt mir daraufhin immer fehler aus:
dim crc_l as byte
dim crc_l as byte
dim crc as word
crc_l=low(crc)
crc_h=high(crc
an was kann das liegen?
Es kann im Prinzip immer auch kommunikationsfehler geben, wenn z.B. sende- und empfangsseitig die erzielten baudraten knapp an den Toleranzgrenzen sind ( Baudraten haben immer einen %-Fehler)
Aber rein Erfahrungsmäßig würde ich das, solang noch das mit den Bytefolgen irgendwie unsicher ist, mal nicht annehmen. sondern erstmal das restliche Terrain absichern.
Der Befehl:
inputbin Packete(1),8 überschreibt auf jeden Fall 8 Byte des Buffers, da brauchst du nix löschen.
Mach ganz einfach mal den Buffer größer, wenn es sich irgendwie ausgeht:
CONFIG SERIALIN = buffered, SIZE = 128
und schau, obe sich das Verhalten ändert
dim crc_l as byte
dim crc_l as byte
zweimal gleich. Verschrieben ?
also wegen der crc muss ich mich berichtigen, hab nur die variablen vertauscht, leider kann ich die crc16 nicht verwenden, gibt mir falsche werte aus.werd die prozedur doch selbst machen müssen.
ist es nicht so das für empfang und senden nur einen puffer git? da ich ja 10 bytes sende aber nur 8 empfange, nicht das er die letzten 2bytes mit in die andere prozedur überträgt.
Nein, nein, die Buffer sind schon getrennt, keine Sorge. Können auch verschieden groß sein.
aber auf wieviel soll ich den buffer erhöhe, wenn ich ihn auf 128 hochsetz kommt nichts mehr an.
auszug von dem was der PC senden, und was der mc Empfängt:
pc:000 006 002 002 002 000 105 115
mc 000 103 114 000 006 002 002 002
??? kann das am buffer liegen
Irgendwie kommen Sender / Empfänger aus dem Tritt.
Wenn der Sender immer 8 Byte schickt, und der Empfänger immer 8 Byte liest (auch wenn er sie nicht verwertet) kann das so nicht sein.
Kann es sein, daß du beim lesen auf die 2 Byte CRC vergißt ?
nein, die werden mit gesendet und auch mit empfangen, aber halt nicht berechnet.komisch senden tut er die 8bytes+2bytes einwandfrei zum pc, nur irgendwie haut er das mit dem empfangen immer durcheinander.
hab mal versucht den buffer zu erhöhen, aber dan macht er garnichts mehr.