ks0066 mit m8535 und bascom

Gast #2169393
Lesenswert?

Hallo,

habe so wie viele andere das selbe problem mit dem sch... ks00066 
kontroller...

nach tagelangem lesen und probieren bekomme ich jetzt zumindest etwas 
ausgegeben, zwar lauter müll aber der balken ist weg...

meine bisherigen erkenntnisse:
lt foren soll das ks0066 mit dem standard hd44780 kompatibel sein, bis 
auf den init vorgang

mein versuch:
ich hab lt datenblatt den init selbst versucht, und seit dem bekomme ich 
zumindest irgendwelche zeichen ausgegeben, aber nicht wirklich das was 
ich sill.. aber teile davon sind irgendwo im ganzen dabei..

derzeitiger code:
1
Config Portc = Output
2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
3

4

5
Myport Alias Portd
6

7

8

9

10
Config Lcd = 20 * 2
11

12

13

14
Waitms 150
15

16
Myport = &B00111011
17
Myport = &B00111011
18
Myport = &B00111101
19
Waitms 55
20

21
Myport = &B00111111
22
Myport = &B00111100
23
Waitms 55
24

25
Myport = &B00111111
26
Myport = &B00110111
27
Waitms 15
28

29
Myport = &B00111111
30
Myport = &B00111001
31

32
Wait 20
33

34
Lcd "Hello world."
35
Wait 1
36

37
Lowerline
38
Wait 1
39
Lcd "second line."
40
Wait 1

meist ist nur eine zeile aktiv, aber manchmal aktiviert er beide... ich 
steh echt an, und mit c oder assembler bin ich nicht wirklich 
bewandert...

besten dank

ps: die bits sind inventiert da ich stk500 hab
Gast #2169615
Lesenswert?

ok, etwas weiter bin ich gekommen.. hab die Zeiten verändert und den 
"entry mode set" zwei mal hintereinander ausgeführt und danach Display 
löschen Befehl (als myport.... und nicht cls) gesendet nun zeigt er dass 
an was ich will.. fast...

an erster Stelle in der ersten Zeile steht "3" und ich bekomme es nicht 
weg...

nach dem Display löschen per myport... muss ich cls ausführen dann ist 
der 3er weg, aber ohne myport.... cls führt zu Müllausgabe...

ich versteh das einfach nicht...
Gast #2169631
Lesenswert?

>Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = 
>Portd.7 , E = Portd.3 , Rs = Portd.2

>Myport Alias Portd

Ja, immer schön auf den Port schreiben ohne die benötigten Waitstates
vom Display:

>Myport = &B00111011

Warten

>Myport = &B00111011

Warten

>Myport = &B00111101
>Waitms 55

Portd.0 und Portd.1 sind doch gar nicht angeschlossen.
Du kannst es dir also sparen da an den beiden Bits
ganz rechts zu wackeln.
Gast #2169648
Lesenswert?

Zumindest funktioniert Deine Shift-Taste wieder :-)
Wer soll das denn lesen? (Erster Beitrag)

Wenn Du jetzt noch Deinen Quelltext kommentieren würdest, dann könnten 
Dir sicherlich mehr Leute helfen.

Ich kenne mich mit Basic nicht so aus.
In der ersten Zeile steht
1
Config Portc = Output
 Dann "nagelst" Du aber auf Portd (MyPort) rum.
1
Myport = &B00111011
2
Myport = &B00111011
Du schreibst 2 mal den gleichen Befehl.
Da fehlt noch was. "E" sollte noch gepulst werden und dann ein wenig 
warten.
Oder ist Basic so langsam?

Was bringen jeweils die letzten beiden Bits?

Ähh. Den zweiten Beitrag mag verstehen wer will.
Wo steht denn der "entry mode set" in Deinem Quelltext (Stichwort Doku)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren