Bonjour,
L'i2c ca a l'air facile mais la franchement je bloque.
En regardant SSPSTAT avec l'option watch, je vois la condition de START mais je ne rentre jamais dans l'interruption et le bit R/W ne passe pas à 1 (je veux lire le bus)
Voici l' initialisation :
Code:
int main(void)
{
unsigned char Tampon;
INTCONbits.GIE = 1;
INTCONbits.PEIE = 1;
RCONbits.IPEN=1;
IPR1=0x08; // SSPIP = 1 : interruption pour SSP high
PIE1=0x08; // SSPIE = 1 : autorise I2C interrupt
SSPADD=0x20; //Adresse de l'esclave
SSPSTAT=0x80; // SMP = 1 : mode 100KHz (quartz 16M)
SSPCON1=0x20; //I2C enable
SSPCON1 |= 0x06; // SSPM = 0110 : mode slave 7 bits
SSPCON1bits.CKP = 1; //On relache l'horloge
tampon= SSPBUF; // BF = 0;
}
Voyez quelque chose de louche lors de l'initialisation?
Merci d'avance
-----