Vale chicos, pero y si quiero grabar un número de 16bits?, el problema es que estoy intentando hacer unos cálculos con el timer, y, o me está multiplicando en un solo byte (que creo que es lo que pasa, lo que me hace no entender nada de lo que ocurre), o no presenta bien los datos en la eeprom....
A ver que os parece, aqui os pongola función donde se hacen los cálculos:
unsigned int16 calculos(int F1, unsigned int16 T) //F1 = nº de overflows
{ //T valor del Timer1 actual
unsigned int16 T1=0, Tt = 0, j=0;
unsigned int32 T2;
T1 = (F1 * 174); //174ms overflow del Timer1 con un reloj de 12MHz
T2 = (T *
;
T2 = (T2 / 3); //Paso a us el tiempo del timer
j = T2 * 0.001; //trunco la suma quedándome con ms
a1 = T1&0x00ff;
T1>>=8; //máscara para presentar los datos en el winzip800
a2 = T1&0x00ff;
cont++;
write_eeprom(cont,F1);
cont++;
write_eeprom(cont,a2);
cont++;
write_eeprom(cont,a1);
Tt = T1 + j; //Sumo los tiempos parciales
return (Tt);
}
Creo que lo que realmente pasa es que al multiplicar, multiplica el F1 por 174 y lo mete en un sólo byte quedando (cuando F1 = 9), 1E en vez de 061E
AYUDA!!!!!!!