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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.