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
Da Du alles selber schreibst, liegen CR, LF und andere Steuerzeichen auch in Deiner Regie, das Display versteht
sowas nicht, vermute das betrifft auch 0xFE, 0xFF.
Lerne C!
mfg
Achim
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 18:36 Uhr)
https://de.wikipedia.org/wiki/Byte_Order_Mark
0x0D und 0x0A werden normalerweise beim Drucker verwendet oder anderen Ausgabegeräten -> CR+LF
Normalerweise sollte auf einen Wagenrücklauf ein Zeilenvorschub erfolgen, hierzu benötigt man beide Steuerzeichen.
Für reine Textdateien oder auch andere textbasierte Dateien kann aber auch nur eines von beidem (am ehesten CR) verwendet werden. Das ist nicht ungewöhnlich.
Ob in diesem Fall das 0xFE und 0xFF als Byte-Reihenfolge-Markierung steht, weiß ich nicht, eigentlich müsste es dann vorangestellt werden - denke ich. Es könnte auch einfach dafür verwendet werden, dass man das Textende eindeutig erkennt. Wenngleich dafür eigentlich eine "0" zuständig ist.
MfG
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
Lesezeichen