Gast
#5041435
Hallo zusammen!
Ich habe folgendes Problem und komme irgendwie nicht weiter. Ich
verwende einen dsPIC33EP64MC204. Die AD-Wandler und 2 Timer
funktionieren bereits wie gewollt. Allerdings bekomme ich den Controller
nicht als I2C Slave zum funktionieren. An RC5 hängt SCL und an RC4 hängt
SDA. Zudem initialisiere ich das Modul wie folgt:
// I2C Slave initialisieren.
I2C1CON = 0x8000;
I2C1ADD = 0b00000010;
I2C1MSK = 0;
// I2C Slave Interrupts einstellen.
IFS1bits.SI2C1IF = 0;
IEC1bits.SI2C1IE = 1;
Zudem verwende ich folgenden Interrupt:
void _attribute_ ( ( interrupt, no_auto_psv ) ) _SI2C1Interrupt (
void )
{
// Some Code...
return;
}
Vom Master sende ich folgende 3 Bytes (Dezimalschreibweise): 4, 1, 30
Die Bytes werden auch geschickt. Mein Logic Analizer zeigt mir das
richtig an. Dort sehe ich folgenden Ablauf:
START, 4, 1, 30, STOP
Nun würde ich erwarten, dass der PIC beim empfangen des Adressbytes in
den Interrupt springt, damit ich dort die empfangenen Werte lesen kann.
Nur leider tut er das nicht. Den gleichen Code verwende ich bereits mit
einem PIC24. Dort funktioniert alles gut. Übersehe ich etwas? Ich hoffe
irgendjemand hat einen Tipp für mich. Bin langsam am verzweifeln :(
Vielen Dank!
euer Harry