- 3D-Druck Einstieg und Tipps         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 31

Thema: Zeichensatz benutzen

  1. #11
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Anzeige

    Powerstation Test
    Poste bitte mal den ganzen Quellcode nach dem du dich richtest. Also nicht das was du selbst geschrieben hast, sondern das was du im Netz gefunden hast.

  2. #12
    Murus
    Gast
    Hier:
    Im Do-Loop wird ein "M" angezeigt.
    Dies möchte ich aber mit dem Zeichensatz machen...

    $regfile = "m32def.dat"
    $crystal = 1000000

    Config Portb = Output

    Declare Sub Ukommando(byval Wert As Byte)
    Declare Sub Udata(byval Wert As Byte)
    Declare Sub Initialisierung
    Declare Sub Lcdloeschen

    Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4

    Dc Alias Portb.0
    Ce Alias Portb.2
    Re Alias Portb.1



    Re = 0 'Reset
    Waitus 250
    Re = 1

    Spiinit 'Initialisierung der SPI-Schnittstelle

    Do
    Initialisierung
    Lcdloeschen

    Udata &H7F
    Udata &H02
    Udata &H04
    Udata &H02
    Udata &H7F
    Udata &H00
    Wait 2

    Loop


    Sub Initialisierung
    Ukommando &H21 'Erweiterter Kommando-Mode
    Ukommando &HC8
    Ukommando &H06
    Ukommando &H13
    Ukommando &H20 'Wieder in den normalen Kommando-Mode
    Ukommando &H0C
    End Sub

    Sub Lcdloeschen
    Local I As Word
    Ukommando &H20 'Normaler Kommando-Mode
    Ukommando &H0C 'Normaler Bildschirm
    Ukommando &H80 'Setze RAM-Adresse auf 0
    Dc = 1 'Sicherstellen, dass man im Daten-Mode ist
    For I = 0 To 503
    Udata &H00
    Next
    End Sub


    '------------------------------------------------------------------------------

    Sub Ukommando(byval Wert As Byte)
    Dc = 0 'in den Kommando-Mode
    Spiout Wert , 1
    Dc = 1 'zurück in den Daten-Mode
    End Sub

    Sub Udata(byval Wert As Byte)
    Dc = 1 'um sicher zu gehen, dass man auch wirklich im Datenmode ist
    Ce = 0
    Spiout Wert , 1
    Ce = 1
    End Sub

    Und hier noch ein Auszug, wies im Zeichensatz aussieht:

    A:
    Data &H00 , &H7C , &H12 , &H11 , &H12 , &H7C
    B:
    Data &H00 , &H7F , &H49 , &H49 , &H49 , &H36
    C:
    Data &H00 , &H3E , &H41 , &H41 , &H41 , &H22
    D:
    Data &H00 , &H7F , &H41 , &H41 , &H41 , &H3E
    E:
    Data &H00 , &H7F , &H49 , &H49 , &H49 , &H41


    Wie kann ich jetzt auf diese Daten zugreifen und somit die Buchstaben anzeigen?

    Herzlichen Gruss
    Mario

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Folgendes ist der Code, den du im Internet gefunden hast.
    Und nur das und nicht mehr steht im Code!!!!!!
    Zeige mir bitte die Stelle wo mit Data die Zeichen eingestellt werden.
    Es gibt dort kein Data!!!!!!!
    Code:
    $regfile = "m16def.dat"
    $crystal = 8000000
    
    Config Portb = Output
    Config Porta = Output
    
    Declare Sub Ukommando(byval Wert As Byte)
    Declare Sub Udata(byval Wert As Byte)
    Declare Sub Initialisierung
    Declare Sub Lcdloeschen
    
    Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4 , Noss = 1
    'Config Spi = Soft , Din = Pinb.6 , Dout = Portb.5 , Clock = Portb.7
    
    Dc Alias Portb.3
    Ce Alias Portb.2
    Re Alias Portb.1
    
    
    Re = 0                                                      'Reset
    Waitus 250
    Re = 1
    
    Spiinit                                                     'Initialisierung der SPI-Schnittstelle
    
    Do
    Initialisierung
    Lcdloeschen
    
    Udata &H7F
    Udata &H02
    Udata &H04
    Udata &H02
    Udata &H7F
    Udata &H00
    Waitms 1500
    
    Loop
    
    
    Sub Initialisierung
       Ukommando &H21                                           'Erweiterter Kommando-Mode
       Ukommando &HC8
       Ukommando &H06
       Ukommando &H13
       Ukommando &H20                                           'Wieder in den normalen Kommando-Mode
       Ukommando &H0C
    End Sub
    
    Sub Lcdloeschen
    Local I As Word
       Ukommando &H20                                           'Normaler Kommando-Mode
       Ukommando &H0C                                           'Normaler Bildschirm
       Ukommando &H80                                           'Setze RAM-Adresse auf 0
       Dc = 1                                                   'Sicherstellen, dass man im Daten-Mode ist
       For I = 0 To 503
          Udata &H00
       Next
    End Sub
    
    
    '------------------------------------------------------------------------------
    
    Sub Ukommando(byval Wert As Byte)
       Dc = 0                                                   'in den Kommando-Mode
       Spiout Wert , 1
       Dc = 1                                                   'zurück in den Daten-Mode
    End Sub
    
    Sub Udata(byval Wert As Byte)
       Dc = 1                                                   'um sicher zu gehen, dass man auch wirklich im Datenmode ist
       Ce = 0
       Spiout Wert , 1
       Ce = 1
    End Sub
    Du vermischt da zwei verschiedene Codebeispiele. Das geht nicht einfach so!!!
    Sollte ich unrecht haben und es gibt einen Code, welcher mit Udata arbeitet und Data-Zeilen für die Buchstaben hat, dann poste bitte den Link dazu.

    Ansonsten gibt es noch einen anderen Code, wo diese Data-Zeilen vorhanden sind. Wo hast du den Code her?

  4. #14
    Murus
    Gast
    AAAAAAAAAAhhhhhh
    Ich komm net mer draus!! Bremsen! Wir verlieren glaub unsere Ziele....
    Im Zeichensatz (das ist kein Programm, nur ein Tabelle) stehen ja für jeden Buchstaben die Hexfiles, mit denen das LCD mit dem Udata-Befehl angesteuert werden muss, damit dieser dort erscheint.
    Wie kann ich denn nun auf diesen Zeichensatz zugreifen? (mit dem Code, der "Udata" benutzt)
    Ich kapier jetzt garnix mehr.
    Ich beziehe mich auf die Seite www.mkprojekt.de
    Der Zeichensatz ist ja dafür da, dass ich nicht pro Buchstabe fünfmal einen Udata-Befehl laufen lassen muss...
    Nur weiss ich nicht, wie ich den benutzen kann....

  5. #15
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Ich hab mal das Zeugs in eine Source zusammenkopiert
    1. Teil
    Code:
    $regfile = "m32def.dat"
    $crystal = 1000000
    
    Config Portb = Output
    
    Declare Sub Ukommando(byval Wert As Byte)
    Declare Sub Udata(byval Wert As Byte)
    Declare Sub Initialisierung
    Declare Sub Lcdloeschen
    
    Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4
    
    Dc Alias Portb.0
    Ce Alias Portb.2
    Re Alias Portb.1
    
    
    
    Re = 0                                                      'Reset
    Waitus 250
    Re = 1
    
    Spiinit                                                     'Initialisierung der SPI-Schnittstelle
    
    Do
    Initialisierung
    Lcdloeschen
    
    Udata &H7F
    Udata &H02
    Udata &H04
    Udata &H02
    Udata &H7F
    Udata &H00
    Wait 2
    Das ist jetzt der Teil, wo die Pixel eingelesen werden

    Dim Cntr As Byte
    Dim Chrs As Byte
    Restore 0 ' oder A, B, C, D, E,...
    For Cntr = 1 To 6
    Read Chrs ' lesen Zeichen aus dem Flash
    Call Udata(chrs) ' udata mit dem zeichen
    Next
    Und nun der Rest von dem Programm
    2. Teil
    Code:
    Loop
    
    
    Sub Initialisierung
       Ukommando &H21                                           'Erweiterter Kommando-Mode
       Ukommando &HC8
       Ukommando &H06
       Ukommando &H13
       Ukommando &H20                                           'Wieder in den normalen Kommando-Mode
       Ukommando &H0C
    End Sub
    
    Sub Lcdloeschen
    Local I As Word
       Ukommando &H20                                           'Normaler Kommando-Mode
       Ukommando &H0C                                           'Normaler Bildschirm
       Ukommando &H80                                           'Setze RAM-Adresse auf 0
       Dc = 1                                                   'Sicherstellen, dass man im Daten-Mode ist
       For I = 0 To 503
          Udata &H00
       Next
    End Sub
    
    
    '------------------------------------------------------------------------------
    
    Sub Ukommando(byval Wert As Byte)
       Dc = 0                                                   'in den Kommando-Mode
       Spiout Wert , 1
       Dc = 1                                                   'zurück in den Daten-Mode
    End Sub
    
    Sub Udata(byval Wert As Byte)
       Dc = 1                                                   'um sicher zu gehen, dass man auch wirklich im Datenmode ist
       Ce = 0
       Spiout Wert , 1
       Ce = 1
    End Sub
    
    
    '********************** Daten (ASCII) ******************************************
    0:
    Data &H00 , &H3E , &H51 , &H49 , &H45 , &H3E
    1:
    Data &H00 , &H00 , &H42 , &H7F , &H40 , &H00
    2:
    Data &H00 , &H42 , &H61 , &H51 , &H49 , &H46
    3:
    Data &H00 , &H22 , &H41 , &H49 , &H49 , &H36
    4:
    Data &H00 , &H18 , &H14 , &H12 , &H7F , &H10
    5:
    Data &H00 , &H27 , &H45 , &H45 , &H45 , &H39
    6:
    Data &H00 , &H3E , &H49 , &H49 , &H49 , &H32
    7:
    Data &H00 , &H61 , &H11 , &H09 , &H05 , &H03
    8:
    Data &H00 , &H36 , &H49 , &H49 , &H49 , &H36
    9:
    Data &H00 , &H26 , &H49 , &H49 , &H49 , &H3E
    
    A:
    Data &H00 , &H7C , &H12 , &H11 , &H12 , &H7C
    B:
    Data &H00 , &H7F , &H49 , &H49 , &H49 , &H36
    C:
    Data &H00 , &H3E , &H41 , &H41 , &H41 , &H22
    D:
    Data &H00 , &H7F , &H41 , &H41 , &H41 , &H3E
    E:
    Data &H00 , &H7F , &H49 , &H49 , &H49 , &H41
    F:
    Data &H00 , &H7F , &H09 , &H09 , &H09 , &H01
    G:
    Data &H00 , &H3E , &H41 , &H49 , &H49 , &H3A
    H:
    Data &H00 , &H7F , &H08 , &H08 , &H08 , &H7F
    I:
    Data &H00 , &H00 , &H41 , &H7F , &H41 , &H00
    J:
    Data &H00 , &H20 , &H41 , &H41 , &H41 , &H3F
    K:
    Data &H00 , &H7F , &H08 , &H14 , &H22 , &H41
    L:
    Data &H00 , &H7F , &H40 , &H40 , &H40 , &H40
    M:
    Data &H00 , &H7F , &H02 , &H04 , &H02 , &H7F
    N:
    Data &H00 , &H7F , &H04 , &H08 , &H10 , &H7F
    O:
    Data &H00 , &H3E , &H41 , &H41 , &H41 , &H3E
    P:
    Data &H00 , &H7F , &H09 , &H09 , &H09 , &H06
    Q:
    Data &H00 , &H3E , &H41 , &H51 , &H61 , &H7E
    R:
    Data &H00 , &H7F , &H09 , &H19 , &H29 , &H46
    S:
    Data &H00 , &H06 , &H49 , &H49 , &H49 , &H30
    T:
    Data &H00 , &H01 , &H01 , &H7F , &H01 , &H01
    U:
    Data &H00 , &H3F , &H40 , &H40 , &H40 , &H3F
    V:
    Data &H00 , &H1F , &H20 , &H40 , &H20 , &H1F
    W:
    Data &H00 , &H7F , &H20 , &H10 , &H20 , &H7F
    X:
    Data &H00 , &H63 , &H14 , &H08 , &H14 , &H63
    Y:
    Data &H00 , &H03 , &H04 , &H78 , &H04 , &H03
    Z:
    Data &H00 , &H61 , &H51 , &H49 , &H45 , &H43
    
    'Leerzeichen
    Leer:
    Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00
    
    'für Kleinbuchstaben
    A1:
    Data &H00 , &H30 , &H4A , &H4A , &H52 , &H7C
    B1:
    Data &H00 , &H3F , &H48 , &H44 , &H44 , &H38
    C1:
    Data &H00 , &H38 , &H44 , &H44 , &H44 , &H28
    D1:
    Data &H00 , &H38 , &H44 , &H44 , &H48 , &H7F
    E1:
    Data &H00 , &H38 , &H54 , &H54 , &H54 , &H18
    F1:
    Data &H00 , &H00 , &H04 , &H7E , &H05 , &H00
    G1:
    Data &H00 , &H0C , &H52 , &H52 , &H4A , &H3C
    H1:
    Data &H00 , &H7F , &H08 , &H04 , &H04 , &H78
    I1:
    Data &H00 , &H00 , &H44 , &H7D , &H40 , &H00
    J1:
    Data &H00 , &H00 , &H40 , &H44 , &H3D , &H00
    K1:
    Data &H00 , &H7F , &H20 , &H10 , &H28 , &H44
    L1:
    Data &H00 , &H00 , &H41 , &H7F , &H40 , &H00
    M1:
    Data &H00 , &H7C , &H04 , &H18 , &H04 , &H7C
    N1:
    Data &H00 , &H7C , &H08 , &H04 , &H04 , &H78
    O1:
    Data &H00 , &H38 , &H44 , &H44 , &H44 , &H38
    P1:
    Data &H00 , &H7C , &H14 , &H24 , &H24 , &H18
    Q1:
    Data &H00 , &H18 , &H24 , &H24 , &H14 , &H7C
    R1:
    Data &H00 , &H7C , &H04 , &H04 , &H08 , &H00
    S1:
    Data &H00 , &H08 , &H54 , &H54 , &H54 , &H20
    T1:
    Data &H00 , &H04 , &H3F , &H44 , &H40 , &H00
    U1:
    Data &H00 , &H3C , &H40 , &H40 , &H40 , &H3C
    V1:
    Data &H00 , &H1C , &H20 , &H40 , &H20 , &H1C
    W1:
    Data &H00 , &H3C , &H40 , &H30 , &H40 , &H3C
    X1:
    Data &H00 , &H44 , &H28 , &H10 , &H28 , &H44
    Y1:
    Data &H00 , &H0C , &H50 , &H50 , &H48 , &H3C
    Z1:
    Data &H00 , &H44 , &H64 , &H54 , &H4C , &H44
    
    'Sonderzeichen
    Punkt:
    Data &H00 , &H00 , &H60 , &H60 , &H00 , &H00
    Strich:
    Data &H00 , &H18 , &H18 , &H18 , &H18 , &H00
    Doppelpunkt:
    Data &H00 , &H00 , &H6C , &H6C , &H00 , &H00
    Gradzeichen:
    Data &H00 , &H00 , &H07 , &H05 , &H07 , &H00
    Pfeilrechts:
    Data &H00 , &H41 , &H63 , &H36 , &H1C , &H08
    Das ist sozusagen der offizelle Weg, aber nicht sehr elegant.
    Ich schau mal, ob mir einen bessere Schweinerei einfallt.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #16
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    mit denen das LCD mit dem Udata-Befehl angesteuert werden muss
    Du verstehst das Programm nicht ganz. Das Udata liesst den Zeichsatz nicht aus. Ich verstehe, was Data bedeutet.
    Code:
    Example
    '-------------------------------------------------------------
    '                      READDATA.BAS
    '             Copyright 1999-2000 MCS Electronics
    '-------------------------------------------------------------
    
    Dim A As Integer , B1 As Byte , Count As Byte
    Dim S As String * 15
    Dim L As Long
    Restore Dta1                                                'point to stored data
    For Count = 1 To 3                                          'for number of data items
       Read B1 : Print Count ; "  " ; B1
    Next
    
    Restore Dta2                                                'point to stored data
    For Count = 1 To 2                                          'for number of data items
       Read A : Print Count ; "  " ; A
    Next
    
    Restore Dta3
    Read S : Print S
    Read S : Print S
    
    
    Restore Dta4
    Read L : Print L                                              'long type
    
    End
    
    
    Dta1:
    Data &B10 , &HFF , 10
    Dta2:
    Data 1000% , -1%
    
    Dta3:
    Data "Hello" , "World"
    'Note that integer values (>255 or <0) must end with the %-sign
    'also note that the data type must match the variable type that is
    'used for the READ statement
    
    Dta4:
    Data 123456789&
    'Note that LONG values must end with the &-sign
    'Also note that the data type must match the variable type that is used
    'for the READ statement
    Die Zeichsatz.bas hat mit der Nokia3310.bas nicht viel zu tun. Außer, das man sie zusammenfügen könnte.
    Wie das geht, steht in der Hilfe von Bascom (also das auslesen von Data). Falls es in deiner Hilfe zufällig nicht aufgeführt ist hab ich es dir hier oben hin kopiert. Ich hoffe, damit kein Copyright zu verletzen.

    Und jetzt hast du alle Grundlagen den Zeichsatz mit Udata zu "verbinden".

    Sorry, wenn ich dir keine fertige Lösung gebe, aber ich mag es nicht, wenn immer gefragt wird, ohne das man sieht, das man sich selbst bemüht hat.

    btw: Ich habe schon mehrere Postings von dir gelesen.



    EDIT: Ich hab dir zwei Code-Tags aus meinem privaten Bestand spendiert. Gib' sie mir halt gelegentlich wieder zurück. PicNick

  7. #17
    Murus
    Gast
    Ahaa, jetzt wirds mir klar!
    Danke vielmals für die Erklärungen! Als Anfänger weiss man halt (noch) net so recht, wo der AVR hängt...
    Bemühe micht stets auch immer, dem Forum das zurückzugeben, was er mir gibt.

    Herzlichen Gruss
    Mario

  8. #18
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Soo ein blutiger Anfänger bist du auch nicht mehr. Einiges hast du ja auch schon auf die Beine gestellt.
    Es ist immer hilfreich erstmal in die Hilfe zu schauen. Da weiss man meistens denn wenigstens schon, in welche Richtung man denken muss.
    Wenn man es dann selbst noch nicht schafft, kann man den anderen aber schonmal sagen, das man die Hilfe nicht verstanden hat.

    Was du für dein Programm brauchst sind die Befehle Restore und Read.
    Mit Restore wird das jeweilige Zeichen erstmal "aktiviert" und mit Read kannst du die sechse Werte des Zeichen lesen und mit Udata anzeigen lassen.

    Ich traue es dir zu, die beiden Befehle und den Code sinnvoll zu verbinden. Und wenn's nicht klappen sollte, deinen Code posten und man wird dir sicherlich helfen können.

    PS: Bei einer Sache muss ich mich entschuldigen. Ich dachte du hättest noch einen zweiten Code für das 3310 gehabt. Es gibt noch eine "Variante" wo der Zeichensatz schon mit im Code ist.
    Aber da du nicht gesagt hast, wo du den Code her hast wusste ich es nicht.

  9. #19
    Murus
    Gast
    Jo, wir haben aneinander vorbei geredet.
    Ich lade grad in dem Moment den Code in den AVR uuuund...
    geht net...

    Also, hier mal mein Code:
    Nur die Do-Loop-Schleife, da spielt sichs ja ab:

    Do
    Initialisierung
    lcdloeschen
    Restore A:
    For x=1 To 6
    Read Ziff
    Call Udata(ziff)
    next
    Loop

    x und Ziff sind als Byte gedimmt...
    Wieso klappt das net? Mit restore Pointe ich drauf und mit read sollt ers doch lesen..
    Ich vermute, beim Read fehlt noch was, ich muss ihm doch sagen, wieviel er lesen muss, moment, ich guck mal in der Hilfe nach..
    Hmm, nee, das sollt er können...??

  10. #20
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Restore A:
    Probier mal Restore A ohne :

    Und dann Udata Ziff ohne Call und ohne ()

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress