TWI Slave reagiert nicht im Interruptmodus

OP (Firma: IPF) #1937547
Lesenswert?
• ▲
▼
Hallo zusammen,

ich sitzte schon einige Tage an einem TWI Problem. Mein Slave reagiert 
einfach nicht. Ich habe mitlerweile das ganze Forum durchforstet, aber 
keine lösung gefunden.

Im Anhang ist mein Master und Slave Programm, wäre schön wenn sich dies 
mal ein Profi dursieht und mir gegebefals weiterhelfen kann.

mfg

freeclimber
Angehängte Dateien:
OP (Firma: IPF) #1937653
Lesenswert?
• ▲
▼
Prgramm Beschreibung:

Soll eine einfache I²C routine darstellen

Master: Empfängt über den USART eine '1' oder eine '2' und springt dann
in das I²C transmitter unterprogramm um an den Slave eine 0x01=1 oder
0x02=2 zu senden.

Dieser Teil sollte eigentlich funktionieren.

Slave:Soll nun über den Interruptmodus diese 0x01 oder 0x02 empfangen
und dann eine routine ausführen. Leider reagiert der Slave überhaupt
nicht. Es kommt kein Interrupt zu stande, zumindestens sender er kein 
ACK zum Master zurück.

mfg
Angehängte Dateien:
#1937814
Lesenswert?
• ▲
▼
Ich blick bei deiner Zustandsmaschine nicht durch, was mir aber auffällt 
ist
1
//PULL-UP von SCL und SDA
2
DDRC &= ~((1<<0x01)|(1<<0x02));
3
PORTC |= (1<<0x01)|(1<<0x02);
Das ist a) falsch (du willst "(1<<PC0)|(1<<PC1)"), b) unnötig - die 
internen Pull-ups (20kOhm-50k) sind sowieso  für I2C zu Groß.

Und für deine Statuswerte bietet sich eine enum an:
1
enum twi_slave_status { WAITING, GOT_1, GOT_2, WAITING_FOR_STOP};
oder so ähnlich.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.