Forum: Mikrocontroller und Digitale Elektronik I2C Interrupt


von Dieter Krutzler (Gast)


Angehängte Dateien:

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

von Dieter Krutzler (Gast)


Angehängte Dateien:

Lesenswert?

Hier ist die Datei die ich als Vorlage benutzt habe.

Grüße

von Dieter Krutzler (Gast)


Lesenswert?

Schade..
Andere Frage:
Ich bin ja wahrscheinlich nicht der erste der mit I2C Interrupts 
arbeitet. Wie habt ihr die Daten ausgelesen?

Grüße

von Robin (Gast)


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.

von sebastians (Gast)


Lesenswert?

Ich könnte mir vorstellen dass man printf (Ausgabe auf die serielle 
Schnittstelle?) nicht in einem Interrupthandler aufrufen darf.

von BenK (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.