Daten aus 2 hintereinander liegenden Registern in ein char[8] Array einlesen
Hallo Kollegen,
hat jemad ne Lösung zu so einem Fall ???
- Daten aus 2 hintereinander liegenden 32 bit Registern (insgesamt 2 x 4 = 8 Bytes) in ein char[8] Array einlesen
Theoretisch sollte man es mit Pointer erledigen können
- 1. Pointer auf den Anfang des 1. Register setzen.
- 2. Pointer auf den Anfang des char Arrays setzen
- in einer "for" Schleife bis 8
- - Byte vom Register ins char Array einlesen
- - beide Pointer incrementieren
- und so 8x
Kann das so funktionieren ???
. . . komm irgendwie nicht zu Recht.
Über eine Lösung freue ich mich jetzt schon :p
DANKE
Hin und zurück kopieren sollte so gehen
Code:
struct // hier habe ich eine 8 Byte Struktur
{
unsigned int a; // 4 Bytes
unsigned int b; // nochmal 4 Bytes
} value;
char* pRegister;
unsigned char Data[8];
int main(void)
{int i;
// 8 Bytes initialisieren
value.a = 0x11223344;
value.b = 0x55667788;
pRegister = (char*)&value; // Zeiger setzen
for (i=0; i<8; i++) // alle 8 Bytes kopieren
{
Data[i]=*pRegister++;
}
// !!!!! den Pointer wieder richtig setzen !!!! hatte ich eben auch vergessen.....
pRegister = (char*)&value; // Zeiger wieder auf Start setzen
for (i=0; i<8; i++) // alle 8 Bytes zurück kopieren
{
*pRegister++=Data[i];
}