Forum: Projekte & Code LCD 4Bit modus und BF flag mit Menue Text ausgabe AVR Assem


von Phagsae (Gast)


Angehängte Dateien:

Lesenswert?

LCD Ansteuerung im 4 Bit modus
Das Busy flag wird ausgelesen die Steuerung ist sehr kompakt
Für Kommando und Daten wird ein identisches SUB_Prog benutzt
Gesteuert wird das über das T flag

Um Textzeilen bequem benutzen zu können hab ich noch ein Menue
Teil reingebastelt

Die Texte sind im bsp 16 Zeichen lang also eine ganze Zeile
Um 2 kurze Texte in eine Zeile zu schreiben
Cursor auf Pos1 Text ausgeben
Cursor auf Pos2 Text ausgeben ( die restlichen 8 werden einfach 
überschrieben)
Der Rest des Texts landet im Nirvana

Getestet mit 4433 und einem 16x2 Universal LCD ( Reichelt )
Die Timing einstellungen müssten für 8MHz passen
Hab nach dem init mal den AVR auf 12 Mhz umgeschalten war OK
Funktioniert dank BF readout sehr schnell

Have fun !!!!

von MarkusB (Gast)


Lesenswert?

Hi,
sieht ganz nett aus. Ich kann's nur leider nicht assemblieren :(
Ich bekomme einen Fehler in der Delay Routine. Dort ist die Variable 
Delay_K die nirgens definiert wird.
Ist das eine Konstante?
Wie groß muß der Wert sein?

Gruß
Markus

von Phagsae (Gast)


Lesenswert?

OK
Das ist ein Fehler
Sollte eine Konstante sein
Für Delay_K=125
Und Xtal =4MHz
entspricht Time_R =10 1ms

von MarkusB (Gast)


Lesenswert?

Jo, danke. Hab ich mir gedacht.

Gruß
Markus

http://www.elektronik-projekt.de/

von MarkusB (Gast)


Angehängte Dateien:

Lesenswert?

Hi Phagsae,
ich hab Deine Delay Routine überarbeitet. Hattest noch einen Bug drin. 
MR wurde nach dem ersten Durchlauf auf 255 gesetzt. Hab das mal 
geändert. Auserdem hab ich die Werte für "Delay_K" für mehrere 
Frequenzen ermittelt. Für 8MHz reiche der Wert allerdings nicht mehr 
aus.
Wenn man für Time_R einen Wert von 10 einsetzt hat man eine Verzögerung 
von ca. 1ms.

Gruß
Markus
http://www.elektronik-projekt.de/

von MarkusB (Gast)


Angehängte Dateien:

Lesenswert?

Muß noch was korrigieren. In der Delay Funktion war noch ein Bug. Die 
beiden POP Befehle wurden in der falschen Reichenfolge ausgeführt.
Ausserdem hab ich noch eine weitere Funktion für längere Delays 
hinzugefügt.
Es kann sein das die Werte für Delay_K nicht 100% stimmen. Also nicht 
blind darauf verlassen.

Gruß
Markus
http://www.elektronik-projekt.de/

von Phagsae (Gast)


Lesenswert?


Uuuupss.......moin Markus
Dir Entgeht nichts oder ?.......Gut so

Ich hab das Prog aus einem grösseren Pojekt rausgenommen.
Ich leg für Definitionen immer ein eigenes file an , hab da wohl beim 
Rauskopieren geschlampt.
Ich hab auch das zusammenkopierte Prog nicht mehr getestet.

Die Orginal Timing Daten waren tatsächlich für 3,8 Mhz
Hab dann später auf 8 Mhz umgemodelt

Kann ich dein Delay ins Programm übernehmen ?
Ich würds dann hier nochmal in vollständiger Fassung ins Forum stellen

Ich bitte um nachsicht das Delay Sub_P ist mein allererster Progversuch 
gewesen :-)

Phagsae

von MarkusB (Gast)


Lesenswert?

Kein Prob. Ich dachte, dafür sind solche Foren da damit man sich 
gegenseitig helfen kann.
Kannst das gerne übernehmen und Posten, ich schreibe aber selbst gerade 
an einer Lib für LC-Displays, oder anders ausgedrückt, ich erfinde das 
Rad zum 1001 mal ;)

Gruß
Markus
http://www.elektronik-projekt.de/

von Phagsae (Gast)


Angehängte Dateien:

Lesenswert?

So Das sollte dann jetzt wohl klappen:-)

Hab das "Markus.B" Delay übernommen
Hab das jetzt auch mal ausprobiert - > Klappt

Danke richtung e-projekt  für die Käfersuche

Phagsae

von Johannes (Gast)


Lesenswert?

Danke Euch beiden. Ihr habt mir gerade sehr viel Arbeit gespart.

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
Noch kein Account? Hier anmelden.