Documente Academic
Documente Profesional
Documente Cultură
#include <p18f2550.h>
#include <delays.h>
#include <i2c.h>
//#include <usart.h>
#include <adc.h>
#include <stdlib.h>
{
IdleI2C();
StartI2C();
while ( SSPCON2bits.SEN );
WriteI2C( ByteControl );
WriteI2C( HighDireccion );
WriteI2C( LowDireccion );
putsI2C(BufferData);
StopI2C();
while ( SSPCON2bits.PEN );
while (EEAckPolling(ByteControl));
}
void main(void){
dirAlta= 0;
dirBaja= 0;
while(1){
SetChanADC(0);
Delay10TCYx(1);
ConvertADC();
while(BusyADC()==1){}
dato= ReadADC();
itoa(dato,StringData);
Delay1KTCYx(5);
BufferWriteI2C(0xA0,dirAlta,dirBaja,StringData);
nippur:
Otra cosa, "formatee" la memoria escribiendole todos ceros hasta el final...asi si
obtengo siempre numeros de cuatro digitos ej 0015, o 0658 o 1015, etc...
===================================================================================
================================
la instruccin rotar toma el dato y desliza sus bits a izquierda o derecha, as por
ejemplo un Data=0b00010011
al realizar (Data<<4) quedara 0b00110000. En las lineas que poste toma el byte mas
significativo de la palabra (16-bits)
y lo rota a la posicin del byte menos significativo.
write_eeprom(Direccion++,(Data>>8)); write_eeprom(Direccion, Data); // Solo
transfiere los primeros 8 bits, truncando.