www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 7- Segment gemultiplext


Autor: Honkey Honk (honkeys)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich habe folgendes Problem, ich habe eine Zeitanzeige mit 3 7- 
Segmentanzeigen gebaut, die gemultiplext werden allerdings ist Segment 3 
sehr hell, so wie es sein sollte und die Segmente werde dann immer 
dunkler, so dunkel dass man sie kaum noch ablesen kann. Wodran kann das 
liegen, habe jetzt schon alles mal ausprobiert um das Problem zu lösen. 
Hat allerdings alles nichts gebracht.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Strukturierung und Kommentierung des Programms würde helfen.

Du mußt dafür sorgen, daß jedes Digit gleich lang leuchtet.

Dazu legt man z.B. 3 Byte Puffer an, in die dann die Segmentmuster 
abgespeichert werden und der Timerinterrupt gibt sie dann nur aus.

Außerdem dürfen teure Berechnungen (z.B. Division) nicht in Interrupts 
erfolgen, wenn man nicht sicherstellt, daß sie vor dem nächsten 
Interrupt beeendet sind.


Peter

Autor: Honkey Honk (honkeys)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein 3- Byte Puffer mmh hört sich gut an aber keine Ahnung wie ich das 
mache, haste da vielleicht mal irgendwas zum nachlesen oder so?
Also ist das mit switch und case ungünstig wie ich es jetzt mache?
Vielleicht könnte mir jemand zeigen wie man es "optimal" macht.

Dankeschön schonmal im Vorraus

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Honkey Honk wrote:
> Ein 3- Byte Puffer mmh hört sich gut an aber keine Ahnung wie ich das
> mache, haste da vielleicht mal irgendwas zum nachlesen oder so?


Beitrag "ADC mit Multiplexanzeige"


Peter

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Also ist das mit switch und case ungünstig wie ich es jetzt mache?

Du machst viel zu viel im Interrupt.
Leg deine ganzen Berechnungen in die Hauptschleife.
In der Hauptschleife berechnest du alles was es zu
berechnen gibt und legst dir die Bytes fix fertig für
die Ausgabe an die einzelnen 7-Segment Anzeigen zurecht
(in 3 globalen Variablen; eben der Puffer, den Peter
angesprochen hat).

Im Interrupt wird dann nur noch die Ausgabe gemacht.
Also die bereits fertig berechneten Bytes abwechselnd
an die einzelnen Anzeigen legen.


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.