lcd-trouble, die 100ste

Gast #265675
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..
Angehängte Dateien:
Gast #265677
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
Gast #265678
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..!!!
Gast #265680
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" ?
Gast #265682
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.