Hallo zusammen. Ich versuche gerade eine I2C Kommunikation aufzubauen. Leider klappt es noch nicht wirklich
Ich habe das Programm daraufhin im Debug Modus laufen gelassen.
Irgendwas stimmt mit dem I2C_Read Befehl nicht. Er hängt sich in einer
while-Schleife auf und macht an diesem Punkt nicht weiter bzw er verbleibt in der while schlife (SSPSTATbits.BF), er empfängt anscheinend keine Daten. Habt
ihr eine Ahnung wodrann das liegen könnte?
Wem es hilft dem habe ich außerdem noch meinen Quellcode beigefügt.
void INIT_I2C(void){
OpenI2C(MASTER, SLEW_OFF);
SSPADD = 19;
}
unsigned int TEST = 0x0000;
unsigned char LSB = 0x00, MSB = 0x00;
while(1)
{
StartI2C(); // Start condition I2C on bus
IdleI2C();
WriteI2C(0x95); // addresses the chip + 1 LESEN
IdleI2C();
// AckI2C();
LSB = ReadI2C(); // read the value from the SLAVE and store in TEST variable.
IdleI2C();
// AckI2C();
MSB = ReadI2C();
IdleI2C();
// NotAckI2C(); // Not Acknowledge condition. This will signal the SLAVE that reading data has completed.
IdleI2C();
StopI2C(); // Stop condition I2C on bus
TEST = MSB << 8 | LSB;
MSB=0x00;
LSB=0x00;
}
Lesezeichen