Gast
#1868558
Hallo zusammen. Ich bin gerade dabei eine Projektarbeit zu starten. Da ich diesmal etwas strukturiert an die Sache herangehen will, hätte ich da eine Frage bezüglich der ‚allgemeinen‘ Software-Struktur. Und zwar sollte ich mittels I2C einen Baustein ansteuern. Dieser Baustein löst immer dann einen Interrupt aus, wenn allgemeine Ereignisse eintretten. Die Art des Ereignisses lässt sich dann über I2C aus dem Register 0h auslesen. Danach müssen weitere Register ausgelesen werden, um weitere Informationen zu erhalten. Meine Frage bezüglich der SW-Struktur betrifft nun konkret die Interruptverarbeitung. Ich sehe folgende Möglichkeiten: a.) Ich lese direkt im Interrupt über I2C die entsprechenden Register aus und starte die Abarbeitung. Vorteil: Ich kann direkt auf das entsprechende Ereignis reagieren. Nachteil: Ich habe eine relativ lange ISR (Auslesen der Register über I2C, Algorithmus…) b.) Ich setze in der ISR nur ein Flag. In einer nebenläufigen Schleife lese ich dann die Register über I2C aus und starte eine entsprechende Abarbeitung. Vorteil: Kurze ISR, Nachteil: Ich reagiere ziemlich spät auf das Ereignis. Im Grunde genommen könnte ich dann ich der Schleife gleich den entsprechenden Pin pollen… Wie würde man in der Praxis dies implementieren? Danke für eure Tipps und Anregungen.