16F877A IC2 esclavo problema maestro de comunicación

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);

))

 
Trate de usar el protocolo de comunicación SPI.No se puede utilizar como un maestro de operaciones de esclavos.

Recuerdos
Chachal

 
Hola,
Por favor, lea la hoja de datos, algo que ver con el estado I2C, necesidad de esperar si ocupado I2C.

 

Welcome to EDABoard.com

Sponsor

Back
Top