Hallo,
sorry ersteinmal .. Ihr habt aber schon richtig geraten ;)
also BufferRX ist ein char Array.
BufferRX[j] ist ja dann auch nur 1 Byte. Die Interpretation dann ist
wohl
falsch. Aber wie macht man es dann richtig?
Wenn ich in der Ausgabe ein %u einsetze wird -119 angezeigt.
Komme da irgendwie nicht weiter!
Das ich bei Read immer 32 Byte einlese ist im Prinzio auch ein Fehler,
ich hatte das für Testzwecke so hoch gesetzt. Aber das hat ja
mit dem eigentlichen Problem das da FFFFFF angezeigt wird nichts zu tun.
Also, wie wäre denn jetzt die Richtige Lösung?
Ich habe jetzt nochmals was anderes getestet, aber auch so funktioniert
nicht:
1 | for (j=0;j<8;j++)
|
2 | {
|
3 | if (j == 0)
|
4 | rxb = BufferRX[j];
|
5 | else
|
6 | rxb = rxb<<8 | BufferRX[j];
|
7 | printf("rxdata %i: %016x\n",j,rxb);
|
8 | }
|
Mit dieser Routine sieht es so aus:
rxdata 0: 0000000000000044
rxdata 1: 0000000000004433
rxdata 2: 0000000000443322
rxdata 3: 00000000ffffff89
rxdata 4: 00000000ffff8967
rxdata 5: 00000000ff896745
rxdata 6: 0000000089674523
rxdata 7: 0000000067452301
Auch hier wieder dieses ominöse FFFFFF. Ich weiß einfach nicht wo
das herkommt. Auch merkwürdig das die ersten 4 Bytes in diesem Fall leer
bleiben. rxb habe ich als unsigned long long initialisiert, sollte also
groß genug sein.
Vielen Dank schon vorab!
Thomas