www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Variabler Wert am Display


Autor: Britneypunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich habe ein mehr oder weniger kleines problem:
Ich möchte einen variablen Wert am Display ausgeben,
der aus einem Timer/Counter stammt. Die einzelen Stellen konnte ich 
schon 'rausfiltern'. Wenn zum beispiel das T/C register einen Wert von 
125 hat, so konnte ich schon die 1 als hunderter-, die 2 als zehner- und 
die 5 als einerstelle jeweils einzeln in ein register befördern.

Ich habe schon eine Idee wie ich's machen könnte, aber das wäre zimlich 
programmier aufwand, bezogen auf die länge des Quellcodes.

Danke schonmal im voraus

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
falls du (wie ich annehme) auf einer Siebensegmentanzeige darstellen 
willst, gibt es mehrere Wege.
1. Je Stelle einen BCD/Siebensegmentdekoder mit Speicher benutzen, 
einfach anzusteuern, braucht 3 ICs, 21 Widerstände und 7 Portleitungen 
am MC.
2. Serielle Ausgabe mit Schieberegistern, auch 3 ICs (74HCT4094), 21 
Widerstände, nur 3 Portleitungen, etwas höherer Softwareaufwand.
3. die "MC-Standardlösung": Multiplexansteuerung, benötigt nur 7 
Widerstände und 3 Transistoren.
Wenn du keinen externen Dekoder verwendest, mußt du die Codewandlung im 
MC (mit Tabelle) machen.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Laß Dir doch nicht alles aus der Nase ziehen:

Was für ein Display ?
Welche Idee hast Du denn ?
Was ist bei Dir langer Quellcode ?

Stellen rausfiltern klingt ja komisch. Das nennt man 
Zahlenformatwandlung, z.B. Binär nach Dezimal.
Gebräuchliche Methoden sind:
1. Divisionsmethode
2. Subtraktionsmethode
3. Packet-BCD Additionsmethode
Welche hast Du denn verwendet ?


Peter

Autor: Britneypunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte das auf einem LC-Display ausgeben.

Meine Idee:
Jeden Registerwert (0-9), der dann im jeweiligen register steht 
(hunderter-,zehner- und einerstelle)mit einer vergleichs-operation mit 
dem jeweiligen Dezimalwert (0-9) zu vergleichen. Stimmt der Vergleich 
überein, so ist dann da der jeweilige ASCII Code für die jeweilige zahl 
hinterlegt. Und den kann ich dann an's LCD senden.

Autor: thkaiser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man könnte aber auch das Offset für Ascii (=$30 oder 48 dez.) einfach 
zum Registerwert hinzuaddieren. Eine Tabelle und ein Vergleich ist 
absolut unnötig.

Autor: Britneypunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ thkaiser:

das ist mir gestern Abend dann auch noch eingefallen, als ich mir die 
ASCII tabelle mal genauer angesehen habe;
und es funktioniert auch.

Trotz dem danke ;-)

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.