Estoy usando el microcontrolador PIC18f. Tengo que escribir variables enteras de 16 bits (2 bytes) que se convirtieron en dos variables de caracteres, es decir, para escribir cada byte en una dirección de EEPROM consecutiva. Al principio, tengo que escribir un byte superior (datos de 8 bits) en la EEPROM. No puedo obtener los 8 bits más altos de la variable entera mediante el siguiente código (donde puedo escribir los ocho bits más bajos de la variable entera). Mi código es
void int_EEPROM_putc(unsigned char address, unsigned char data);
unsigned char int_EEPROM_getc(unsigned char address);
unsigned char c;
unsigned int d;
unsigned char* e;
unsigned char f;
void main()
{
d=0xffff;
e=(unsigned char*)&d;
//f=*e
f=*(e+1);
int_EEPROM_putc(0x02,f);
delay_ms(100);
c=int_EEPROM_getc(0x02);
while(true)
{
if(c==255)
{
PORTB=~PORTB;
}
else
{
PORTB=0xff;
}
}