Bascom : (Timer)Interrupt - Multiplex

dg2ygq

Neues Mitglied
23. Juli 2007
239
0
0
Bielefeld
Sprachen
Ich komme auch hier nicht klar, ich hoffe ich habe das Problem immerhin richtig erkannt.

Grundliegendes :
Um eine 2-Stelle 7-Segmentanzeige unterm Interrupt zu multiplexen, muss der Interrupt vom Timer ausgelöst werden ?
Die Interruptroutine gehört hinter das Ende vom Programm? Bleibt sich das Gleich ob vor oder hinter Data-Zeilen?

Wie erreiche ich dass der gewünschte (Timer?)Interrupt ausgeführt wir?

Bei der Ausgabe läuft es so ab :
- einschalten der Zehner-Anzeige (Pina.1)
- ausgabe der variablen für die Zehnerstelle (PortB)
- ausschalten der Zehneranzeige
- einschalten der Eineranzeige (Pina.0)
-ausgabe der variablen für Einerstelle (PortB)
- ausschalten der Einerstelle
- "retri"
Ist meine Überlegung so richtig, oder habe ich was grundliegendes vergessen?

Michael
 
Hallo Michael,

um eine 2-stellige 7Segmentanzeige zu multiplexen, müsste man allgemein folgerdermaßen vorgehen.

Zunächst benötigt man ein Ereignis, welches eine Multiplex-Routine zyklisch aufruft. In der Regel ist das Ereignis ein TimerInterrupt (entweder OverflowInterrupt oder CompareInterrupt des Timers).

Den TimerInterrupt konfiguriert man so, dass er alle 20ms auftritt, dies entspricht einer Multiplexfrequenz von 50Hz (kann man auch noch etwas erhöhen, damit es nicht zu Interferenz-Effekten mit Umgebungsbeleuchtung kommt).

In der Multiplex-Routine, bzw. der TimerInterrupt-Routine schaltet man bei jedem Aufruf jeweils auf die zum Zeitpunkt des Aufrufs nicht aktive Anzeige um. Das heisst zum Beispiel: LEDA an? Wenn ja dann LEDA aus und LEDB an, ansonsten LEDB aus und LEDA an. Um rauszufinden, welche LED-Anzeige an ist, brauchst du in deinem Fall zum Beispiel nur PA0 vom PORTA untersuchen.

Grüße
Dirk
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)