Hallo,
ich habe schon hier ins Forum geschrieben,aber in der Codesammlung.
Ich verwende ein S65 Display mit Mega8. Also Code verwende ich den von
www.comwebnet.de. Herr Milewski? hat leider keine Zeit zu helfen, der
ist mit anderen Projekten eingedeckt.
Also es sieht folgendermaßen aus: Im eeprom sind die Zeichen
gespeichert.
Hier der Code zum auslesen eines Zeichens:
1
Sub S65_zeichen(byval Lx As Byte , Byval Ly As Byte , Byval Bcol As Word , Byval Fcol As Word , Byval Lcd_text As String * 1)
2
3
Local R As Integer
4
Local A As Byte
5
Local B As Byte
6
Local C As Long
7
Local D As Byte
8
Local E As Byte
9
Local F As Byte
10
Local G As Long
11
Local Xpos As Byte
12
Local Ypos As Byte
13
Local Zeichen As String * 1
14
Xpos = 0
15
Ypos = 0
16
17
G = Asc(lcd_text)
18
G = G - 32
19
G = G * 6
20
21
Readeeprom B , G
22
23
A = 8
24
25
For F = 1 To 6
26
C = 1
27
28
D = B
29
For E = 1 To 8
30
Xpos = Lx + E
31
Xpos = 132 - Xpos
32
33
Ypos = Ly + F
34
35
A = D And 1
36
If A = 1 Then Call S65_pset(xpos , Ypos , Fcol)
37
If A = 0 Then Call S65_pset(xpos , Ypos , Bcol)
38
Shift D , Right , 1
39
Next
40
Decr C
41
42
G = G + 1
43
Readeeprom B , G
44
Next
45
46
End Sub
Dieser Code gibt mir das Zeichen in 6x8 aus.
Und so stehts im Eeprom:
Data &H7E , &H09 , &H09 , &H09 , &H7E , &H00 ' "A"
Also wenn einer von euch mir weiterhelfen kann, wäre ich euch sehr
dankbar.Ich habs jetzt wirklich schon sooo lange probiert, ich komm
nicht drauf.
MFG Peter
Hallo,
naja nicht ganz.
A=1 bedeutet Pixel ein, A=0 bedeutet Pixel aus.
G bedeutet das "Zeichen", dass aus dem Eeprom ausgelesen wird.
F ist der Zähler für die Bytes, also von 1 bis sechs,damit das ganze
Zeichen ausgelesen wird.also die Breite
E ist das selbe nur halt für die Höhe
B,C,D weis ich leider nicht.
Lx,Ly sind die Werte wo das Zeichen im Display hingesetzt wird.
Ich muss ja gestehen, ich kenn mich im Bereich Microcontroller nicht so
aus.
Ich brauche dies für eine Diplomarbeit auf der Uni.
MFG Peter
Hallo,
das ist das Bitmuster des Zeichens, wie es aussieht spaltenweise und
Bit7 oben, aber das sollten die Displayunterlagen verraten, wie dessen
Ram-Zuordnung zu den Pixeln ist.
Gruß aus Berlin
Michael
Hallo,
ja weis ich schon. Das sind ja prinzipiell die Spalten vom Zeichen.
Also 8 bis lang und eben 6 bytes breit. Hier stellt es ein A dar.
Ich hoffe du hast das gemeint.
Also kannst du mir da weiterhelfen?
Eigentlich muss ich ja "nur" die a,b,c,d,e,f... Werte verändern...???
Hallo Peter,
hier ist mein Code den ich mal für die grösseren Zeichen umgeschrieben
hab. Kannst du dir mal ansehn. Wird aber ohne Anpassung nicht laufen da
ich die Pixelausgabe in ASM mache. (_pset) Ausserdem läufts bei mir mit
Hard-SPI.
Gruss Gerhard
Sub S65_big_zeichen(byval Lx As Byte , Byval Ly As Byte , Byval Bcol As
Word , Byval Fcol As Word , Byval Lcd_text As String * 1)
Local A As Byte
Local B As Byte
Local D As Byte
Local E As Byte
Local Ee As Byte
Local F As Byte
Local Ff As Byte
Local G As Word
Local Xpos As Byte
Local Ypos As Byte
Local Zeichen As String * 1
Xpos = 0
Ypos = 0
G = Asc(lcd_text)
G = G - 32
G = G * 6
Readeeprom B , G
'Byte darf nicht
verändert werden für 2. durchlauf
For F = 1 To 6
D = B
Ff = F + F
Py = Ly + Ff
For E = 1 To 8
Ee = E + E 'für 2x hoch
Xpos = Lx + Ee
Px = 132 - Xpos
A = D And 1
If A = 1 Then
Farbe = Fcol
End If
If A = 0 Then
Farbe = Bcol
End If
rCall _pset
Px = Px - 1 'für 2x hoch
rCall _pset 'für 2x hoch
Shift D , Right , 1
Next
Py = Py - 1
D = B
For E = 1 To 8
Ee = E + E 'für 2x hoch
Xpos = Lx + Ee
Px = 132 - Xpos
A = D And 1
If A = 1 Then
Farbe = Fcol
End If
If A = 0 Then
Farbe = Bcol
End If
rCall _pset
Px = Px - 1 'für 2x hoch
rCall _pset 'für 2x hoch
Shift D , Right , 1
Next
G = G + 1
Readeeprom B , G
Next
End Sub
Hallo Gerhard!
Du bist klasse, hast mir sehr geholfen.
Ich habe den Code jetzt eingebunden, und es ist "alles" doppelt so groß.
Was noch nicht passt, ist, dass jede zweite Zeile (waagrecht) frei
bleibt.also keine pixel kommen. Weist du vielleicht, woran es liegt?
Ist das bei dir auch so?
MFG Peter
Hallo Peter,
bei mir wird alles korrekt dargestellt.
In meinem Code kommt 4x "rcall _pset" vor ,
hast du diese 4 Zeilen umgeschrieben, dann müsste es klappen.
Ansonsten kannst du mir mal deinen Code mailen.
email: g.humer ät ptm.co.at
Gruss Gerhard
Gibts es eine Hard SPI Ansteuerung für den S65 und Zeichensätze für
verschiede Grössen in Bascom wäre sehr interessiert daran.
Gerhard kannst du nicht mal das veröffentlichen ?
Gast