Hallo zusammen. Ich habe ein Display mit zwei SED5120. Habe nach anfänglichen Problemen das Display soweit im Griff, dass ich alle Zeichen darstellen kann. Mein Problem ist nun, dass ich eine gemessene Temperatur (mit ADC digitalisiert) im Display anzeigen möchte, und nicht weiß, wie ich diesen dynamischen Wert auf das graphische Display bekomme. Ich muss doch zunächst im Zeichensatz die richtige Zahl herauspicken und darstellen? Oder wie wird das am besten durchgeführt? Kann mir jemand einen Tip geben? Danke Euch. Stefan
>Zeichensatz
Ist der ASCII-kompatibel? Wie sieht der überhaupt aus?
Im ASCII-Zeichensatz sind die Ziffern '0' bis '9' in aufsteigender
Reihenfolge angeordnet.
Will man nun eine 3 darstellen (ASCII-Index 0x33 [hexadezimal]), nimmt
man den ASCII-Index für die '0' (0x30) und addiert die 3 einfach
dazu.
Verstanden?
Wenn du jetzt eine Zahl hast, die grösser als 9 ist, mußt du sie noch
durch Zehnerpotenzen teilen (10, 100, 10000), um die einzelnen Stellen
zu erhalten.
Bei reellen Zahlen muß man dann noch die Nachkommastellen entsprechend
behandeln.
Der Zeichensatz ist selbst generiert, da der SED5120 keinen eigenen Zeichensatz hat. Deshalb ist der Zeichensatz kein ASCII- Zeichensatz. ????? Weiß nicht so richtig wie ich vorgehen soll.
Dann musst du aber eine Tabelle für deinen Zeichensatz haben, über deren Index du an die Daten kommst. Text kannst du ausgeben?
Text kann ich ausgeben, das geht, weil ich dabei weis, welche Daten aus der Tabelle ich nehemen muss.
Wenn du weisst, an welcher Stelle sich die Zahlen-Symbole in deiner Tabelle befinden, sollte das doch kein Problem sein. Solange die Sysmbole in aufsteigender Reihenfolge sortiert sind (0 hat den kleinsten Index und die 9 den grössten), dann kann man durch die Addition des 0-Indexes mit dem Zahlenwert ziemlich einfach herausfinden.
Ich sortiere also die Zahlen in der Tabelle aufsteigend von 0 bis 9. Wenn ich eine 24 darstellen will, muss ich also zunächst durch 10 dividieren. Danach hab ich die 2, addiere diese zum Index von 0 und stelle Sie dar. Und wie bekomme ich die 4?
Wie stellst du denn den Text dar? Wenn du 24 hast, kannst du (in C) mit /10 die 2 "herausfiltern" und mit % 10 die 4 herausfiltern. Man kann eine Division auch durch eine Schleife ersetzen, in der man (in diesem Fall) 10 von der zu teilenden Zahl subtrahiert. Sobald die gewählte Zahl kleiner als 10 ist, hat man die Einerstelle. (In der Grundschule lernt man dafür das "Einmaleins". Hier geht man in die andere Richtung.) Bei 24 ist 2 der ganzzahlige Quotient und 4 der Rest der Division durch 10.
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.