I
infrarrojos
Guest
Estoy tratando de hacer una comunicación i2c para pic pic pero no es el trabajo.
¿Puede un amigo ver lo que estoy haciendo mal en mi código por favor?
Gracias
Master PIC
Código:const slave_address = 0x69;DATAIN unsigned int;
prueba unsigned char [10];initports void ()
(
ADCON1 = 0x10001111;
PORTC = 0;
TRISA = 0;
TRISB = 0b00000011; / / PORTB es la salida
TRISC = 0b00011000 / / modo de entrada de
)void initlcd ()
(
Lcd_init (& PORTB); / / Initialize LCD conectado a PORTB
Lcd_Cmd (Lcd_CLEAR) / / Clear display
Lcd_Cmd (Lcd_CURSOR_OFF); / / cursor Apague
)void enviar (send_data unsigned short)
(
I2C_Init (100000);
I2c_start ();
I2C_Wr (slave_address);
I2C_Wr (send_data);
I2c_stop ();
)Leer unsigned short ()
(
read_data unsigned short;
I2C_Init (100000);
I2c_start ();
I2C_Wr (slave_address 1);
= read_data I2C_Rd (0U);
delay_ms (100);
I2c_stop ();
read_data retorno;
)void main ()
(
initports ();
initlcd ();
lcd_out (1,1, "ma activa");
DATAIN = 0;while (1)
(
DATAIN = read ();
(shorttostr DATAIN, ensayo);lcd_out (3,1, ensayo);
delay_ms (100);
))
¿Puede un amigo ver lo que estoy haciendo mal en mi código por favor?
Gracias
Master PIC
Código:const slave_address = 0x69;DATAIN unsigned int;
prueba unsigned char [10];initports void ()
(
ADCON1 = 0x10001111;
PORTC = 0;
TRISA = 0;
TRISB = 0b00000011; / / PORTB es la salida
TRISC = 0b00011000 / / modo de entrada de
)void initlcd ()
(
Lcd_init (& PORTB); / / Initialize LCD conectado a PORTB
Lcd_Cmd (Lcd_CLEAR) / / Clear display
Lcd_Cmd (Lcd_CURSOR_OFF); / / cursor Apague
)void enviar (send_data unsigned short)
(
I2C_Init (100000);
I2c_start ();
I2C_Wr (slave_address);
I2C_Wr (send_data);
I2c_stop ();
)Leer unsigned short ()
(
read_data unsigned short;
I2C_Init (100000);
I2c_start ();
I2C_Wr (slave_address 1);
= read_data I2C_Rd (0U);
delay_ms (100);
I2c_stop ();
read_data retorno;
)void main ()
(
initports ();
initlcd ();
lcd_out (1,1, "ma activa");
DATAIN = 0;while (1)
(
DATAIN = read ();
(shorttostr DATAIN, ensayo);lcd_out (3,1, ensayo);
delay_ms (100);
))