Hallo seite5,
vielleicht hilft Dir das weiter:
http://web.alfredstate.edu/faculty/w...de_asm_4f.html
Dort ist der Assemblercode für 4 Bit Ansteuerung
und auch der C-Code.
beides recht gut Dokumentiert.
Siro
Hallo seite5,
vielleicht hilft Dir das weiter:
http://web.alfredstate.edu/faculty/w...de_asm_4f.html
Dort ist der Assemblercode für 4 Bit Ansteuerung
und auch der C-Code.
beides recht gut Dokumentiert.
Siro
Geändert von Siro (11.12.2018 um 17:36 Uhr)
Das siehst Du genau richtig.Wie kann ich "Zahlen" in das LCD schreiben? Ein LCD kennt ja keine "Ziffern" oder "Zahlen". Das sind alles nur "Zeichen". Oder liege ich mit dieser Annahme falsch?
Du hast also im Prinzip 4 Werte ( bei einer 3 stelligen Zahl ). Also den eigentlichen Zahlenwert und den ASCII Wert der einzelnen Stellen.
Und das eine Format muss in das andere gewandelt werden ( Üblicherweise der Zahlenwert in die ASCII Zeichen ).
In Assembler kann man das so lösen, das man den eigentlichen Zahlenwert durch 10 Teilt und die Reste dann in ASCII Zeichen umwandelt ( eine Methode von mehreren ). Die Division kannst Du in Hardware machen ( falls der verwendete Controllertyp das hergibt ), oder Du musst eine Routine dafür schreiben.
Dann kannst Du noch überlegen, ob Du einfach führende Nullen mit anzeigst, oder diese durch Leerzeichen ersetzt.
Einfach den aktuellen Zahlenwert am Anfang der gewünschten Position anfangen lassen führt bei einem Übergang zu nächsten Stelle zum Springen der Stellen.
Da das Display üblicherweise nicht vollständig gelöscht wird kommen dann auch " Geisterzahlen " nach dem eigentlichen Messwert aufs Display wenn die ausgegebene Zahl wieder eine Stelle weniger hat.
Gut! Das hat jetzt eigentlich mit der ursprünglichen Fragestellung nichts zu tun, aber das werden mit ziemlicher Sicherheit Deine nächsten Probleme werden, auf Die Du stossen wirst.
Eventuell ist hier auch 0xFE und 0xFF einfach ein Platzhalter ohne weitere Funktion, damit der Speicherbereich nach dem String nicht versehentlich überschrieben wird..db "I = xxx,x mA",0xFE,0xFF
Kann aber natürlich auch alles andere sein.
Das kann eigentlich nur der Quellcode klären.
Hallo siro,
... wem sagst Du das, HeSt ist der ThreadOpener.
Ich selber würde nicht eine Sekunde opfern, um ein derart hässliches Display in eins meiner Projekte einzubauen.
mfg
Achim
@Achim,
Ich akzeptiere, dass du in C programmierst.
Kannst du mir dafür meinen Assembler lassen? Jeder wie er will.
Wenn man keine Hilfestellung leisten kann/will, lässt man in der Regel derartige Kommentare. Zumindest würde ich es so handhaben.
@Siro,
Danke!! Super!
Das ist absolut fein leserlich geschrieben!
Da kann ich mir so einiges raus nehmen.
@wkrug
Hab beim Mega16 leider noch keine Divisionsinstruktion gefunden.
Wird wohl so werden - oder ich finde was im Netz ...
Ich brauche/will keine führenden Nullen.
Danke für den Hinweis.
Sieht danach aus.
Danke jedenfalls für deine ausführlichen Zeilen!
Geändert von HeSt (12.12.2018 um 20:28 Uhr)
Lesezeichen