Hallo, ich weis nicht wo mein Denkfehler liegt.
Mit folgender Funktion bin ich wunschlos glücklich, sie liefert mir das
Hi-Byte eines Integers zurück.
1 | unsigned char gethibyte(unsigned int * integer)
|
2 | {
|
3 | unsigned char * ptr;
|
4 | ptr=(unsigned char*)&integer;
|
5 | ptr++;
|
6 | return *ptr;
|
7 | }
|
Jetzt wollte ich in ähnlicher Weise das Highbyte verändern und dachte
dasfolgende kleine Änderung hilfreich sein wird..
1 | void puthibyte(unsigned int *integer, unsigned char Value)
|
2 | {
|
3 | unsigned char * ptr;
|
4 | ptr=(unsigned char*)&integer;
|
5 | ptr++;
|
6 | *ptr=Value;
|
7 | }
|
Leider funktioniert das so nicht. Ich frage mich aber warum? In der
oberen Fkt. gebe ich den Wert auf den der Pointer zeigt zurück und in
der unteren möchte ich gerne einfach den Wert verändern. Jedoch
verändert sich bei mir nix.
Weis jemand rat?
Benutzte MPLAB IDE 7.51 + C18 Compiler mit PIC 18F2550
Vielen Dank