Hola.
De nuevo con el mismo tema. Llevo mas de dos semanas intentanto de hacer funcionar el i2c con un expansor de bus en un PIC18f2455. Lo estoy realizando con C18 y utilizando las librerias todo parezco entenderlo. El problema es a la hora de simularlo. Tras la condicion de inicio, en todas las simulaciones me aparece una codicion de Reinicio, sin q yo la envie. Ya no se si es problema de mi codigo o problema al realizar mal la simulacion. Agradeceria todo tipo de ayuda. Adjunto ambos archivos, tanto el codigo, como la simulacion. Gracias desde ya.
#include <p18F2455.h>
#include <i2c.h>
#include <delays.h>
#pragma config IESO = OFF, FOSC = HSPLL_HS, PLLDIV = 5, CPUDIV = OSC4_PLL6 //configuracion de CONFIG1L
unsigned char fin_mensaje = 0;
void escribir_expansor (unsigned char DevAdd, unsigned char RegAdd, unsigned char valor);
void main (void)
{
OSCCON=0b01110000;
TRISA = 0x00;
TRISB = 0x03;
TRISC = 0x00;
SSPADD = 39; //
OpenI2C (MASTER, SLEW_OFF);
escribir_expansor (0x40,0x0A,0xC0);
while (!fin_mensaje);
fin_mensaje = 0;
escribir_expansor (0x40,0x0A,0xFF);
while (!fin_mensaje);
escribir_expansor (0x40,0x14,0XFF);
fin_mensaje = 0;
while (1);
}
void escribir_expansor (unsigned char DevAdd, unsigned char RegAdd, unsigned char valor)
{
SSPCON2bits.RSEN = 0;
StartI2C ();
IdleI2C();
WriteI2C (DevAdd);
WriteI2C (RegAdd);
WriteI2C (valor);
StopI2C();
fin_mensaje = 1;
}