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
Schade.. Andere Frage: Ich bin ja wahrscheinlich nicht der erste der mit I2C Interrupts arbeitet. Wie habt ihr die Daten ausgelesen? Grüße
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.
Ich könnte mir vorstellen dass man printf (Ausgabe auf die serielle Schnittstelle?) nicht in einem Interrupthandler aufrufen darf.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.