Hi Zusammen !! Ich möchte sieben 7-Segment-Anzeigen mittels Atmel ansteuern. Dazu werde ich auf das Multiplex-Verfahren zurückgreifen, bis dahin auch völlig problemlos. Nur muß der Controller im Hintergrund auch noch arbeiten ( z.B. läuft eine Uhr, ein weiterer Minutenzähler und ich möchte zwischen verschiedenen Anzeigen wechseln... ). Wie würdet ihr das von der Struktur her lösen?
programmiere einen Timer so, daß der die Uhr sinnvoll ansteuern kann, also irgendwelche "geraden" Timer-Ints. Sagen wir einfach mal jede 1ms. In der ISR kannst du nun alles erledigen, Uhr weiterzählen und auch die Siebensegmentanzeige ansteuern.
Ich würde das anders herum machen: Die Anzeigesteuerung mit Multiplex Timergesteuert im Hintergrund und den Rest im Vordergrundprozess. Allerdings darf der Interrupt zu keiner Zeit gesperrt sein. Siegfried
Interrupts können sehr wehl zeitweise gesperrt sein. Es muss nur innerhalb des Programms sichergestellt werden, dass keine Interrupt-Anforderung "verloren geht".
Also ich mach das immer so: In der Software wird ein Puffer definiert (zb 8 Bytes für 8 Stellen) Der Puffer wird dann initialisiert und anschliesend wird im ms Takt immer genau eine Stelle ausgegeben (Timer Irq) Danach wird nur noch dieser Buffer mit den notwendigen Anzeige Daten gefüllt und fertig. Die Interupts können sehr wohl gesperrt werden. Auch wenn mal ein Interupt verloren geht ist das kein Problem nur daerhaft ausschalten sollte man den Timer nicht. Der Timer kann mit der niedrigsten Priorität laufen. Ich habe dieses Verfahren u.A.bei Frontplatten Controllern mit 23 7-Seg Anzeigen auf einem 89C52 realsiert
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.