Muchas Gracias Maunix y Suky por vuestras respuestas. Teneis razón hacerlo a mano es la solución.
Elegí programar en C la secuencia de escritura de la EEPROM, y ya que Suky me puso el ejemplo con una estructura, intenté declarar por primera vez en mi vida una estructura... pero con nefastos resultados. Este es mi código:
#BYTE EECON2 = getenv("SFR:EECON2")
#BYTE EEDATA = getenv("SFR:EEDATA")
#BYTE EEADR = getenv("SFR:EEADR")
#BIT GIE = getenv("SFR:INTCON").7
typedef struct
{
boolean RD : 1;
boolean WR : 1;
boolean WREN : 1;
boolean WRERR : 1;
unsigned : 4;
}
EECON1bits;
#BYTE EECON1bits = getenv("SFR:EECON1")
void escribir_eeprom(void)
{
EEADR = dir_ee;
EEDATA= val_ee;
EECON1bits.WREN = 1;
deshab_int:
GIE = 0;
if(GIE) goto deshab_int;
EECON2= 0x55;
EECON2= 0xAA;
EECON1bits.WR = 1;
GIE = 1;
}
Y me salen 3 errores:
* Luego de la linea 16 (#BYTE EECON1bits...): "Expecting a variable"
* En las lineas 22 y 28 (donde uso EECON1bits.XX) "Expecting an Identifier"
Se que puedo utilizar simplemente #bit para identificar a WR y WREN, como lo he hecho siempre, pero quisiera saber porque no funciona mi estructura, Ojala me puedan ayudar. Gracias de antemano por la ayuda. Salu2