Forum: Mikrocontroller und Digitale Elektronik lcd-trouble, die 100ste


von Klaus Bröntgen (Gast)


Angehängte Dateien:

Lesenswert?

..wahrscheinlich zum hundertsten mal; aber ich komme irgendwie nicht
durch....

ich habe eine lcd-routine. prinzipiell funktioniert diese auch (also
alles, was mit "lcd_" beginnt); ein ins codesegment geschriebener
string wird auch ausgegeben (via z-pointer, lpm,adiw).

nun das problem:
lege ich im ram eine liste mit dem alphabet an (label tabelle: ) und
versuche dieses danach auszulesen (label ausgabe: ) sagt das display
nix mehr. im simulator (avr-studio4) ist alles schön,der ram wird
richtig bschrieben, die pointer richtig geladen, das daten-register hat
den richtigen wert, porta (lcd-daten) gibt ihn auch aus.
die lcd_initialisierung funzt auch (schwarzer balken geht weg)
...daher zur kontrolle die vielen sinnlos-warteschleifen...
aber nichts desto trotz gibt das lcd gar nichts aus. irgendjemand ne
idee? ich wäre dankbar...

controller ist ein 90S8515, das lcd natürlich hd44780-kombatibel..

von Klaus Bröntgen (Gast)


Lesenswert?

was jetzt? isses zu schwierig oder zu banal? nu laßt mich nich hängen!

oder will niemand....?

von Olaf K. (Gast)


Lesenswert?

Was mir als erstes auffällt:

.def voll=r17
.def leer=r18

Du hast die beiden Register zwar "voll" und "leer" genannt und auch
so verwendet, aber nie den entsprechenden Wert zugewiesen. Da muß also
erstmal noch ein

clr leer
ser voll

gleich hinter die Stackinitialisierung, sonst klappt schonmal Deine
Portinitialisierung nicht.

MfG Olaf

von Klaus Bröntgen (Gast)


Lesenswert?

...stimmt, jetzt taucht der cursor zumindest wieder auf. die
registerbeschreibung ist wohl bei den vielen copy-und-paste-operationen
abhanden gekommen....(und ich hab steif geglaubt, soweit wär alles in
ordnung)
aber der text fehlt dennoch....

........Hannes..!!!

von Mathias (Gast)


Lesenswert?

wie wärs wenn du das ganze ding einmal durchsimulierst? billige
hardwareemulatoren können hier auch wunder helfen

von Klaus Bröntgen (Gast)


Lesenswert?

im avr-simulator gabs keine erkenntnisse....

aber bei mir (mittlerweile): ausgabe ruft falscherweise 'lcd_write'
(zeile 81). dies ist aber nur der teil der schreiboperation, der die
daten ausgibt. vorher sollte man sich schon festlegen, daß man daten
senden möchte. der aufruf muß also rcall lcd_data heißen, damit das rs
gestzt wird. lcd_data ruft dann schon von selbst lcd_write. kleiner
fehler->große wirkung. das lcd dachte, es bekommt kommandos!

aus lcd_write mach lcd_data -> funktioniert!

...dennoch mein dank für die unterstützung......das mit den voll- und
leer-registern hätte ich wohl auch nie entdeckt.

was ist ein "billiger hardwareemulator" ?

von Karl heinz B. (heinzi)


Lesenswert?


von Klaus Bröntgen (Gast)


Lesenswert?

achso, das... hab ich. krieg ich aber irgendwie nicht zur kooperation
überrredet. hätte mir hier auch nix genützt, da ich ja eh nur zu
oberflächlich die ports kontrolliert habe (letzten endes scheiterte ja
alles an einem nicht gesetzten rs). und wenn das virtuelle lcd
genausowenig sagt wie das reelle, hilft das ja auch nicht.

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.