Hola amigos estoy tratando de comunicar dos pic18f4550 por medio de I2C, conseguí un proyecto que enlazaba varios pic16f876 que pueden descargar en los adjuntos.
Lo que ocurre es que al comenzar la comunicacion I2C el micro (pic18f4550), se bloquea, mas concretamente en la linea
i2c_start();
El micro deja de funcionar.
He aquí el código del maestro simplificado...
No entiendo porque ocurre ya que en la gama 16 funciona perfectamente.
Adjunto el proyecto de proteus ccs del archivo funcional (16f) y del que no funciona (18f), muchas gracias por cualquier ayuda
Lo que ocurre es que al comenzar la comunicacion I2C el micro (pic18f4550), se bloquea, mas concretamente en la linea
i2c_start();
El micro deja de funcionar.
He aquí el código del maestro simplificado...
Código:
#include <18f4550.h>
#FUSES XT,NOPROTECT
#use delay(clock=20M)
#use i2c(Master,fast,sda=PIN_A0,scl=PIN_A1, force_sw)
void Envio_I2C(direccion, posicion, dato){
i2c_start(); // Comienzo comunicación
i2c_write(direccion); // Dirección del esclavo en el bus I2C
i2c_write(posicion); // Posición donde se guardara el dato transmitido
i2c_write(dato); // Dato a transmitir
i2c_stop(); // Fin comunicación
delay_ms(50);
}
void main()
{
Envio_I2C(0xA0, 0x01, 0xAA);
}
No entiendo porque ocurre ya que en la gama 16 funciona perfectamente.
Adjunto el proyecto de proteus ccs del archivo funcional (16f) y del que no funciona (18f), muchas gracias por cualquier ayuda