IO-Warrior Problem Port Write Problem

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
schnubbi
Posts: 23
Joined: Sat Oct 15, 2005 3:06 pm

IO-Warrior Problem Port Write Problem

Post by schnubbi »

Ich habe gerade durch Zufall bemerkt dass ich bei meinem LCD Display ab Cursorposition 188 ein Problem habe. Das heißt 4.Zeile erste Cursor Position.
Denn schreibe ich dort etwas hin kommt es bei 188 und 189 noch an aber ab 190 schreibt er die Zeichen dann wo ganz anders hin. Mal hier mal dort.
Zuerst war ich mir sicher scheiße dein Display ist wieder kaputt, aber als ich eben eine wenig mit dem IO-Warrior Testprogramm von einem ForumUser hier versucht habe mal die Ports einwenig auf 1 und 0 zu steuern hat das nicht richtig funktioniert.
Das würde ja meiner Meinung nach bedeuten der Warrior wäre kaputt.

Jetzt habe ich das Display mal abgesteckt und evrola alle Pins lassen sich schön von 1 nach 0 und umgekehrt navigieren.

So ich würde mal sagen dann doch etwas mit dem Display oder?

Aber was glaubt ihr es ist nur wieder eine schlechte lötstelle? ABer würde dann nicht immer scheiße kommen. Oder ist es heute beim Neulöten einfach zu heiß geworden?
Guido Körber
Site Admin
Posts: 2878
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Cursorposition 188? Was für ein Controller ist da auf dem Display?

Die HD44780 belegen nur die ersten 80 Bytes mit Speicher, das oberste Bit wird für andere Dinge verwendet.
schnubbi
Posts: 23
Joined: Sat Oct 15, 2005 3:06 pm

Post by schnubbi »

ich meinte damit meine Programmierung mit Startposition setzen dafür sende ich ja
ReportID 5
byte0 : 1
byte1 : 128 + adresse


Das heißt für mich also 128 ist erste Zeile erstes Zeichen ...

Folglich wäre 188 normalerweise 4. Zeile erstes Zeichen


Hab nochmal getestet ist recht lustig wenn ich mit dem Testprogramm nicht ab Pos 60 schreibe sondner 84 ... also eigenltich nicht mehr richtig komme ich plötzlich richtig in Zeile 4 ... ich Teste noch ein wenig ist schwer zu beschreiben


Hmm komisch ich scheine wohl einen kapitalen Display schaden zu haben ... das macht was es will ... mehr oder weniger :-(
So ich glaube der kommt mit seiner internen Speicheradressierung oder so nicht mehr richtig zurecht. Denn nach der 4. Zeile 3. Zeichen sollte 4. Zeile 4. Zeichen kommen ;-) jedoch legt er mir dann die folgenden Zeichen in die 3. Zeile Zeichen 20 und dann kommt plötzlich 2. Zeile 1. Zeichen und von da an belegt er dann wieder 2. Zeile ... hmm komisch


Wenn ich jetz als Anfangspunkt im Testprogramm 84 einstelle. Sprich ich würde senden
ReportID 5
Byte0: 1
Byte1: 128 + 84
und würde dann sagen wir eine 40 Zeichen lange Zeichenkette reinschreiben dann beginnt in der 4. Zeile 1. Zeichen schreibt schön die Zeile voll und macht dann ganz normal in der ersten Zeile weiter
Guido Körber
Site Admin
Posts: 2878
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Dazu würde ich dann mal die Lektüre unserer "AN5: Driving Display
Modules with IO-Warrior" empfehlen.

Das Display ist völlig in Ordnung, es ist halt ein HD44780 oder ähnlich.
schnubbi
Posts: 23
Joined: Sat Oct 15, 2005 3:06 pm

Post by schnubbi »

nö du verstehst mich da glaub ich falsch ...

ich weiß ja das der nicht linear organisiert ist heißt

0-20 1.Zeile
20-40 3.Zeile
40-60 2.Zeile
60-80 4.Zeile

Nur richtig komisch wirds wenn ich jetzt mit LCD Hype was ins Display schreibe dann funktionierts ohne Wenn und Aber einfach so ...

Ich bin jetz richtig ratlos ...

So weiß jetz warums auf die eine weiße Funktioniert und auf manch andere nicht.
Wenn man ihm immer die vollen 80 Zeichen schicken würde und beginnend bei Zeichen 1 anfängt ihm die zu senden macht er alles richtig, weil er dann den Speicher und soweiter selber intern Hochzählt, dann funktionierts auch.

Wenn ich dem Display sage schreibe mal 10 Zeichen in die 4. Zeile treten fehler auf. Weil der net rafft dass 60 der Anfang der 4. Zeile is sondern er glaubt dass der Anfang der 4. Zeile 84 ist. WArum weiß ich nicht
Noch weniger weiß ich warums funktioniert wenn er intern selber alles regeln darf :-/
Guido Körber
Site Admin
Posts: 2878
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Welcher Controller ist auf dem Display?

Es gibt auch welche die sind fast mit dem HD44780 kompatibel, haben aber ein paar Unterschiede bei der Adressvergabe.
schnubbi
Posts: 23
Joined: Sat Oct 15, 2005 3:06 pm

Post by schnubbi »

Vielen Dank Guido hab mir gerade das Datenblatt nocheinmal ganz genau angesehen von meinen LCD's obwohl laut Datenblatt mein LCD das mit dem HD44780 Controller ist weicht die Adressierung des Speichers total vom normal üblichen ab.
Sind ganz krumme Werte aber jetzt funktionierts!

Ich sage dir meinen Dank


Ich korrigiere mich hiermit noch einmal selbst. Ich weiß zwar nicht warum aber ich bin 1 Jahr in Irrglauben herumgelaufen. Die Adressierung eines HD44780 ist immer so wie ich sie jetzt vorgefunden habe. WArum ich das letzte Jahr damit zurecht gekommen bin weiß ich nicht ;-)

Hier nochmal die Richtige Adressierung eines orginalen HD44780 (4x20 Zeichen)
Die 1. und 2. Zeile gelten auch für ein 2x20 Zeichen Display
Controllers in (DEZ | HEX | Binär)
1. Zeile
000 - 019 | 0x00 - 0x13 | 00000000 - 00010011
2. Zeile
064 - 083 | 0x40 - 0x53 | 01000000 - 01010011
3. Zeile
020 - 039 | 0x14 - 0x27 | 00010100 - 00100111
4. Zeile
084 - 103 | 0x54 - 0x67 | 01010100 - 01100111
Post Reply