Hi Leute, ich habe eine prinzipielle Frage zur Interrupt-Programmierung. Folgende zwei Möglichkeiten schweben mir vor: Möglichkeit 1: Ich habe eine Moduldatei, in der ich LOKAL Zählvariablen deklariere. Diese sollen alle 150ms per IRQ erhöht oder erniedrigt werden, je nach Status eines Portbits. SOmit müsste die IRQ-Routine eine Funktion dieses Moduls aufrufen, die wiederum die LOKALEN Zählvariablen editiert. Möglichkeit 2: Alles wird per GLOBALEN Zählvariablen erledigt, sprich ich deklariere die Zählvariablen im Modul "extern". Meine Frage zielt nun darauf ab, dass es ja eigentlich Gebot ist, die IRQ-Routine so kompakt wie möglich zu halten, ich bei Möglichkeit 1 ja allerdings innerhalb der IRQ-Routine einen weiteren Funktionsaufruf habe. Die variablen wären hier allerdings lokal. Was würdet ihr nehmen? Danke und Gruß.
2 ist unelegant; das würde ich genau dann nehmen, wenn 1 wirklich zu lange braucht. Bzw. C++ dafür nutzen, es elegant zu schreiben, aber die Methoden zum Zugriff dann vom Compiler inline genauso schnell machen zu lassen.
Ich denke, ich würde das über einen Zeiger machen. Stephan.
hm, was ist daran besser, als über extern direkt auf die Variable zuzugreifen?
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.