Ich bekomm das auch nicht gebacken... auch nicht mit den Beispielen von dir, Pascal.
Benutze zwei RNControl Boards... aber das zweite schickt kein ACK zurück.
Sensoren (z.B. I2C Kompassmodul) kann ich ohne Probleme auslesen. Also an der MasterDatei oder an der Strippe usw. kann es schon mal nicht liegen.
Es ist auch egal mit welchem Board ich die Masterfunktion betreibe, die Borads sind also in Ordnung.
Wie gesagt, nur wenn ich beide verbinden möchte mit der Slave.c dann funzt es nicht mehr.
Kann mir jemand helfen?
Code:
/********************************************************************
I2C-Slave-Routinen
*********************************************************************
void i2c_slave_init(void); Initialisieren des Slaves mit der Adresse 0xD0
********************************************************************/
#include "i2c_slave.h"
void i2c_slave_init(void)
{
TWAR = 0xD0; //Slaveadresse
TWCR = (1<<TWEN)|(1<<TWINT)|(1<<TWEA)|(1<<TWIE);
sei();
}
ISR (TWI_vect)
{
switch (TWSR)
{
case (0x60) :
{
TWCR=(1<<TWEN)|(1<<TWINT)|(1<<TWEA)|(1<<TWIE);
break;
}
case (0x80) :
{
temp = TWDR;
TWCR=(1<<TWEN)|(1<<TWINT)|(1<<TWEA)|(1<<TWIE);
break;
}
case(0xA0) :
{
TWCR=(1<<TWEN)|(1<<TWIE);
break;
}
default:
{
TWCR=(1<<TWEN)|(1<<TWIE);
}
}
}
Gruß,
Jan
Lesezeichen