-
-
Erfahrener Benutzer
Roboter Genie
Hallo Marten83,
ich kann mir nicht vorstellen, dass es bei der Verarbeitung der Interrupts Probleme gibt. Mein ganzes Programm bearbeitet in einem fort Interrupts.
Die kommen zum Teil über externe Pins mit Frequenzen zwischen 1Hz und 1KHz zum Teil durch einen Timer, der für alle möglichen Aufgaben da ist.
Die Bearbeitung der Interrupts ist bei mir strikt von Auswertung getrennt. In der ISR wird meistens nur ein Flag gesetzt oder eine Variable hochgezählt.
In der Main-Loop werden diese dann ausgewertet.
Anfangs hatte ich auch befürchtet, dass es mit der sauberen Bearbeitung nichts würde. Aber mittlerweile werden neben dem Empfang des DCF-Signals durch eine eigene Routine noch in jeder Sekunde einmal 7 DS1820 Sensoren ausgewertet, eine eigene IR-Fernbedienung empfangen, Impulse eines Durchflusszählers für Heizöl gezählt und unmittelbar auf kritische Signale von außen reagiert.
Und ich kann dir sagen, es geht ohne Probleme.
Du musst dich auch von der Vorstellung trennen, dass du für jede zeitabhängige Aufgabe (15 Sek. Alarm) einen eigenen Timer brauchst. Wenn du z.B. die Soft-Clock mit der ISR Sectic benutzt, kann diese dies gut nebenbei machen.
Beim Auftreten der Alarmbedingung setzt du eine Variable auf 15.
In Sectic lässt du sie jede Sekunde runterzählen, bis sie bei 0 angekommen ist.
Und in der Routine zur Helligkeitsberechnung fragst du nur, ob die Variable größer 0 ist. Wenn ja dann volle Helligkeit, ansonsten den eingestellten Wert.
Ohne es jetzt ausprobiert zu haben, denke ich, dass du damit hinkommst.
Ansonsten poste mal , vielleicht findet da ja jemand noch ein Problem.
Gruß
Rolf
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen