I2C Interrupt

Gast #1683261
Lesenswert?

Hallo Forum

Ich schreibe gerade ein Programm für den LPC935 mit dem ich die 
Temperatur von TMP100 auswerte.
Eine Frage/Problem hab ich zu den I2C Interrupt-Routinen. Nachdem ich 
das Startbit setze komm ich in der switch-abfrage zum ersten case. 
Danach gleich in den nächsten passenden usw. Warum komm ich trotz break 
nicht nach dem ersten case wieder zurück ins Hauptprogramm? Ich muss 
doch zurück um das Programm kurz mit den while-Schleifen zu stoppen und 
mit den Abfragen weiterzukommen?!??

Grüße
Angehängte Dateien:
Gast #1687866
Lesenswert?

Ich kenn den Controller zwar nicht.

Aber in der Regel läuft das ganze so ab, dass man die Daten beim 
Interrupt aus dem Empfangsregister zieht und in einen Buffer schreibt 
und dann, wenn der Controller Zeit hat, die Daten aus dem Buffer liest 
und Auswertet.
Gast #1688146
Lesenswert?

Robin schrieb:
> Ich kenn den Controller zwar nicht.

Dito ;-)

Aber ich würde auch vermuten, dass es an den printf liegt.
Dein I2C ist wesentlich schneller als deine serielle Schnittstelle mit 
der du deine Meldungen ausgibst. Während dir dein Controller in der ISR 
Bericht erstattet, schreit dein I2C Interrupt schon lange wieder nach 
Aufmerksamkeit.

Gruß, Ben

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren