www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Font von 6x8 auf 12x16 ändern in bascom / S65


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:
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)

Local R As Integer
Local A As Byte
Local B As Byte
Local C As Long
Local D As Byte
Local E As Byte
Local F As Byte
Local G As Long
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

A = 8                                                    

For F = 1 To 6
C = 1

D = B        
For E = 1 To 8
Xpos = Lx + E
Xpos = 132 - Xpos

Ypos = Ly + F

A = D And 1
If A = 1 Then Call S65_pset(xpos , Ypos , Fcol)
If A = 0 Then Call S65_pset(xpos , Ypos , Bcol)
Shift D , Right , 1
Next
Decr C

G = G + 1
Readeeprom B , G
Next

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

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weist du wie sich diese Daten zusammen setzen?

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also was sie bedeuten/darstellen?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bezog mich eignetlich auf : Data &H7E , &H09 , &H09 , &H09 , &H7E , 
&H00

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...???

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: A. G. (tipfix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Gerhard

Wie hast Du das Display an die Hard-SPi angeschlossen. Meins läuft auf 
Soft-SPI. Ist aber etwas langsam.

Gruß Tipfix

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.