www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 7-Segment multiplexen und im Hintergrund arbeiten ??


Autor: Danny Paulsen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Siegfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, und was ist daran andersherum??

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Interrupts können sehr wehl zeitweise gesperrt sein. Es muss nur 
innerhalb des Programms sichergestellt werden, dass keine 
Interrupt-Anforderung "verloren geht".

Autor: Thomas Zepf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.