Gast
#200452
Hallo,
wie kann man in einer Schleife innerhalb einer Funktion eine Variable
mit 3 Byte (var3b) um 1 Byte verschieben und ein neues Byte (var1b)
hinzufügen, und im 2. Schritt ab einer variierenden Position ein Byte
auslesen?
(Jeder Buchstabe entspricht ein Bit 0 oder 1, Reihe mit gleichen
Buchstaben entspricht 1 Byte und Daten sollen zwischen Funktionsaufruf
nicht verloren gehen):
Loop1:
AAAAAAAABBBBBBBBCCCCCCCC (var3b - Anfangswert)
BBBBBBBBCCCCCCCC.... (Verschiebung um 1 Byte)
BBBBBBBBCCCCCCCCDDDDDDDD (var3b - hinzufügen von var1b)
Auslesen ab Pos. (z.B.) 7 = BBCCCCCC
Loop2:
BBBBBBBBCCCCCCCCDDDDDDDD (var3b)
CCCCCCCCDDDDDDDD.... (Verschiebung um 1 Byte)
CCCCCCCCDDDDDDDDEEEEEEEE (var3b - hinzufügen von var1b)
Auslesen ab Pos. (z.B.) 4 = CCCCCDDD
Loop3:
Funktionsaufruf:
static char *var3b="XXX"; //Wert soll in Fkt. erhalten bleiben,
//String Definition 3Byte
char var1b, wert; //char Definition 1 Byte
*var3b=(*var3b << 8); //Verschiebung der Var um 1 Byte
*(var3b+2)=*var1b; //Hinzufügen des neuen Bytes an leere Pos.
Beim Auslesen von var3b zeigt sich an dieser Stelle keine Änderung
gegenüber des Ausgangswertes.
wert=(* var3b >> 7); // Auslesen ab Pos. 7 = BBCCCCCC (Loop1) - in
Ordnung ???
Vielen Dank im Voraus für jeden Tip.
MFG
Silvio