Forum: Mikrocontroller und Digitale Elektronik LCD Programm mit KS0066U Controller "Betaphase"


von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Hallo,
Progrogrämmchen for ATMega8515 und Anagvision AV1621.
Wer schaut mal drüber?
Danke schon mal im voraus.

Es grüßt
Gustav

von Michael U. (amiga)


Lesenswert?

Hallo,

Du hast doch Symbole für PortB und PortD vereinbart:

.equ impuls = portd
;.equ impuls1 = portb  ;fuer RS und Enable Pinout PORTB

Wieso kommentierst Du fehlerträchtig an diversen Stellen so aus:

out  impuls,  temp  ;RS auf "low" Pinout PORTD
;out  impuls1, temp  ;RS auf "low" Pinout PORTB

statt das Ding immer impuls heißen zu lassen und an EINER Stelle

.equ impuls = portd
;.equ impuls = portb  ;fuer RS und Enable Pinout PORTB

nur die Portzuweiseung anzupassen?

Gruß aus Berlin
Michael

von Karl B. (gustav)


Lesenswert?

Hat nen einfachen Grund,
weil ich das Ding im 4-Bit- Modus erst nicht ans Laufen brachte, habe 
ich das ganze Pinout nochmals auf der Platine auf den 8-Bit-Modus 
umgelötet.
Jetzt wollte ich nicht schon wieder löten.
Übrigens sollten die Don't care Eingänge mit Widerstand 1 kOhm gegen 
Masse geschaltet werden.
Die "falschen" Impulse stören tatsächlich nicht. Es läuft der 
Vierbit-Modus, auch wenn der Port überflüssigerweise bei den unteren 
4-Bits jetzt nicht mehr benutzt wird.

Also, wenn man möchte, kann man die ausgeremten Befehle reinsetzen, muß 
dann aber die anderen rausremen.
Deswegen die Deklarationen am Anfang impuls und impuls1.

Habe es tatsächlich mal gemacht, die REMs alle rausgenommen, also RS und 
Enable auf beide Ports "dupliziert" - völlig überflüssig- ok ich weiß, 
nur um zu testen, ob tatsächlich die unteren Vier Bits dadurch nicht als 
"Daten" interpretiert werden.
Es klappt. Also voll Vierbit-Modus.

Das war eben nur ein Test "wie gesagt- Betaphase"

von Michael U. (amiga)


Lesenswert?

Hallo,

Du hast mich mißverstanden...
Um die Sachen von PortB auf PortD umzulegen, reicht EINE Änderung der 
Portzuweisung zum Symbol.

Deine Methode, an vielen Stellen unnötige Änderungen zu machen, macht 
Arbeit und provoziert Fehler, weil man schnell eine Zeile übersieht und 
ewig den Fehler sucht.

out  impuls,  temp  ;RS auf "low" Pinout PORTD
gibt den Inhalt von "temp" an "impuls" aus.

Ist .equ impuls = portd wird an PortD ausgegeben,
ist .equ impuls = portb wird an PortB ausgegeben.

Ist also genau eine Zeile zu ändern, um von PortD auf PortB zu wechseln.
Das ist ja gerade der Sinn von Symbolen. :)

Gruß aus Berlin
Michael

von Karl B. (gustav)


Lesenswert?

Hi, war nur für mein schwaches Gedächtnis gedacht.
Dann weiß ich hinterher besser, wo im Programm was eventuell noch 
geändert bzw. wieder umgeschrieben werden muß, daher auch total 
überflüssig zu erachtende Kommentare.
Ich gebe dann in Word Suchbegriff impuls1 ein und änder auf einen Schlag 
den Text. Mit ersetze Text durch "irgendwas"
Ist dann auch besser, wenn noch mehr in der Zeile steht dann als 
Kommentar.

von Karl B. (gustav)


Lesenswert?

Ist immer ein Problem.
Das Programm soll ja schon mal testweise laufen, ohne, daß man vorher
irgendetwas editieren muß.
Ist eine Deklaration oder Ähnlichers erst noch reinzusetzen, läuft es ja
nicht von alleine, bevor man die Dinge auf die jeweiligen Bedingungen
angepaßt hat.
Das ist wohl auch der Kardinalfehler, wenn man Progs vom Netz runterlädt
und meint, es müßte alles sofort auf Anhieb klappen.
Die Portzuweisungen für high uund low nibble sind im STK500 Board bei
der 4-Bit-Modusdarstellung zum Beispiel genau umgedreht, wie im
AVR-Tutorial hier beschrieben.

Auch ein Lerneffekt.

Noch irgendwelche anderen Auffälligkeiten:
Ja, ja, zweimal den Entry Mode Set .
Sonst kommt es beim manuellen Reset nicht rein.
Da weiß ich auch nicht woran es liegt. Am Timing wohl nicht. SDie 
Zeitschleifenwerte sind ziemlich großzügig dimensioniert wohl wil ich 
meinen. Oder?

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.