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
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.
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
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.
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.
@ 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 ;-)
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.