- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 10

Thema: Mehr als 7 Defchar. Möglich?

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    32
    Beiträge
    3.467

    Mehr als 7 Defchar. Möglich?

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,
    ich verwende für meine Fernsteuerung im Moment 7 selbst gemachte Zeichen (für mein Display mesiten Pfeile in verschiedene Richtungen).
    Gibt es eine Möglichkeit, dass ich mehr als 7 Zeichen selbst machen kann?

    Freue mich auf jede Antwort!!

    jon
    Nice to be back after two years
    www.roboterfreak.de

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo Jon!

    Das ist vom freien RAM des Kontrollers abhängig und eher unmöglich.

    Ich sehe da aber eine (nicht ausprobierte) Möglichkeit, dass man ein Zeichen direkt vor dessen Augabe neu definiert. Dann wird natürlich das vorher sich dort befindliches Zeichen überschrieben. Praktisch müsste man eine Art von Zeichenbibliothek haben und das Zeichen, was man momentan ausgeben will, aus der Bibliothek in den RAM des Kontrollers kopieren (definieren). Vielleicht hat es ein Sinn...

    MfG

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,
    das liegt am Controller auf dem LCD, die meisten hier verwendeten HD44780 Kompatiblen TextLCDs haben nur Platz für 8 eigene Zeichen.

    Oder so wie PICture meint, wenn nicht mehr als 8 verschiedene eigene Zeichen auf einmal angezeigt werden sollen, immer vorher umdefinieren.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    32
    Beiträge
    3.467
    Dann werde ich das mal mit dem Umdefinieren probieren.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.11.2005
    Beiträge
    272
    Hallo,

    ich habe da mal ein Programm geschrieben um auf ein Display große Zahlen drauf zu bekommen. DA stand ich vor einem ähnlichen Problem.

    ich habe dir mal mein Test Code angehangen.

    Da wird einfach von 1 - 0 gezählt. Er läd dann einfach aus der Subroutine die Zeichen und setzt sie auf dem display wieder zusammen.

    Hatte damals auch ein Betrag zu dem Thema laufen. Nannte sich glaube ich "Display mit großen Zeichen"

    Code:
    '**********************************
    '*    Atmega8 mit großen Zahlen   *
    '**********************************
    
    $regfile "m8def.dat"
    $crystal = 1000000
    
    'blaues display
    Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portd.1 , Rs = Portd.0
    Config Lcdbus = 4
    Config Lcd = 16 * 2
    
    Declare Sub 1()
    Declare Sub 2()
    Declare Sub 3()
    Declare Sub 4()
    Declare Sub 5()
    Declare Sub 6()
    Declare Sub 7()
    Declare Sub 8()
    Declare Sub 9()
    Declare Sub 0()
    
    
    '****************************** Main *******************************************
    Do
    
       Call 1()
    
    
    
             Locate 1 , 1
             Lcd Chr(0)
    
             Locate 1 , 2
             Lcd Chr(1)
    
             Locate 2 , 1
             Lcd Chr(2)
    
             Locate 2 , 2
             Lcd Chr(3)
    
    
       Call 2()
    
    
    
             Locate 1 , 3
             Lcd Chr(0)
    
             Locate 1 , 4
             Lcd Chr(1)
    
             Locate 2 , 3
             Lcd Chr(2)
    
             Locate 2 , 4
             Lcd Chr(3)
    
    
       Call 3()
    
    
    
             Locate 1 , 5
             Lcd Chr(0)
    
             Locate 1 , 6
             Lcd Chr(1)
    
             Locate 2 , 5
             Lcd Chr(2)
    
             Locate 2 , 6
             Lcd Chr(3)
    
    
       Call 4()
    
    
    
             Locate 1 , 7
             Lcd Chr(0)
    
             Locate 1 , 8
             Lcd Chr(1)
    
             Locate 2 , 7
             Lcd Chr(2)
    
             Locate 2 , 8
             Lcd Chr(3)
    
    
       Call 5()
    
    
    
             Locate 1 , 9
             Lcd Chr(0)
    
             Locate 1 , 10
             Lcd Chr(1)
    
             Locate 2 , 9
             Lcd Chr(2)
    
             Locate 2 , 10
             Lcd Chr(3)
    
    
       Call 6()
    
    
    
             Locate 1 , 11
             Lcd Chr(0)
    
             Locate 1 , 12
             Lcd Chr(1)
    
             Locate 2 , 11
             Lcd Chr(2)
    
             Locate 2 , 12
             Lcd Chr(3)
    
    
       Call 7()
    
    
    
             Locate 1 , 13
             Lcd Chr(0)
    
             Locate 1 , 14
             Lcd Chr(1)
    
             Locate 2 , 13
             Lcd Chr(2)
    
             Locate 2 , 14
             Lcd Chr(3)
    
    
       Call 8()
    
    
    
             Locate 1 , 15
             Lcd Chr(0)
    
             Locate 1 , 16
             Lcd Chr(1)
    
             Locate 2 , 15
             Lcd Chr(2)
    
             Locate 2 , 16
             Lcd Chr(3)
    
    
    '   Call 9()
    
    '   Call 0()
    
    Loop
    
    '********* Unterverzeichnisse **************************************************
    
    Sub 1
    
    'Zeichen definieren
    '**** 1 ****
       Deflcdchar 0 , 32 , 1 , 3 , 7 , 15 , 1 , 1 , 1           'links oben
       Deflcdchar 1 , 32 , 16 , 16 , 16 , 16 , 16 , 16 , 16     'rechts oben
       Deflcdchar 2 , 1 , 1 , 1 , 1 , 1 , 7 , 15 , 32           'links unten
       Deflcdchar 3 , 16 , 16 , 16 , 16 , 16 , 30 , 31 , 32     'rechts unten
    
    End Sub
    
    '***********************
    
    Sub 2
    
    '**** 2 ****
       Deflcdchar 0 , 32 , 7 , 15 , 32 , 32 , 32 , 32 , 7       ' replace ? with number (0-7)
       Deflcdchar 1 , 32 , 28 , 30 , 6 , 6 , 6 , 6 , 30         ' replace ? with number (0-7)
       Deflcdchar 2 , 15 , 12 , 12 , 12 , 12 , 15 , 7 , 32      ' replace ? with number (0-7)
       Deflcdchar 3 , 28 , 32 , 32 , 32 , 32 , 28 , 30 , 32     ' replace ? with number (0-7)
    
    End Sub
    
    
    Sub 3
    
    '**** 3 ****
       Deflcdchar 0 , 32 , 7 , 15 , 32 , 32 , 32 , 32 , 3       ' replace ? with number (0-7)
       Deflcdchar 1 , 32 , 28 , 30 , 6 , 6 , 6 , 6 , 28         ' replace ? with number (0-7)
       Deflcdchar 2 , 3 , 32 , 32 , 32 , 32 , 15 , 7 , 32       ' replace ? with number (0-7)
       Deflcdchar 3 , 28 , 6 , 6 , 6 , 6 , 30 , 28 , 32         ' replace ? with number (0-7)
    
    
    End Sub
    
    
    Sub 4
    
    '**** 4 ****
       Deflcdchar 0 , 32 , 12 , 12 , 12 , 12 , 12 , 12 , 15     ' replace ? with number (0-7)
       Deflcdchar 1 , 32 , 6 , 6 , 6 , 6 , 6 , 6 , 30           ' replace ? with number (0-7)
       Deflcdchar 2 , 15 , 32 , 32 , 32 , 32 , 32 , 32 , 32     ' replace ? with number (0-7)
       Deflcdchar 3 , 30 , 6 , 6 , 6 , 6 , 6 , 6 , 32           ' replace ? with number (0-7)
    
    End Sub
    
    
    Sub 5
    
    '**** 5 ****
       Deflcdchar 0 , 32 , 7 , 15 , 12 , 12 , 12 , 12 , 15      ' replace ? with number (0-7)
       Deflcdchar 1 , 32 , 28 , 30 , 32 , 32 , 32 , 32 , 28     ' replace ? with number (0-7)
       Deflcdchar 2 , 7 , 32 , 32 , 32 , 32 , 15 , 7 , 32       ' replace ? with number (0-7)
       Deflcdchar 3 , 30 , 6 , 6 , 6 , 6 , 30 , 28 , 32         ' replace ? with number (0-7)
    
    End Sub
    
    
    Sub 6
    
    '**** 6 ****
       Deflcdchar 0 , 32 , 7 , 15 , 12 , 12 , 12 , 12 , 15      ' replace ? with number (0-7)
       Deflcdchar 1 , 32 , 28 , 30 , 32 , 32 , 32 , 32 , 28     ' replace ? with number (0-7)
       Deflcdchar 2 , 15 , 12 , 12 , 12 , 12 , 15 , 7 , 32      ' replace ? with number (0-7)
       Deflcdchar 3 , 30 , 6 , 6 , 6 , 6 , 30 , 28 , 32         ' replace ? with number (0-7)
    
    End Sub
    
    
    Sub 7
    
    '**** 7 ****
       Deflcdchar 0 , 32 , 15 , 15 , 32 , 32 , 32 , 32 , 32     ' replace ? with number (0-7)
       Deflcdchar 1 , 32 , 30 , 30 , 6 , 6 , 12 , 12 , 24       ' replace ? with number (0-7)
       Deflcdchar 2 , 32 , 1 , 1 , 1 , 1 , 1 , 1 , 32           ' replace ? with number (0-7)
       Deflcdchar 3 , 24 , 16 , 16 , 16 , 16 , 16 , 16 , 32     ' replace ? with number (0-7)
    
    End Sub
    
    
    Sub 8
    
    '**** 8 ****
       Deflcdchar 0 , 32 , 7 , 15 , 12 , 12 , 12 , 12 , 15      ' replace ? with number (0-7)
       Deflcdchar 1 , 32 , 28 , 30 , 6 , 6 , 6 , 6 , 30         ' replace ? with number (0-7)
       Deflcdchar 2 , 7 , 12 , 12 , 12 , 12 , 15 , 7 , 32       ' replace ? with number (0-7)
       Deflcdchar 3 , 28 , 6 , 6 , 6 , 6 , 30 , 28 , 32         ' replace ? with number (0-7)
    
    End Sub
    
    
    Sub 9
    
    '**** 9 ****
       Deflcdchar 0 , 32 , 7 , 15 , 12 , 12 , 12 , 12 , 15      ' replace ? with number (0-7)
       Deflcdchar 1 , 32 , 28 , 30 , 6 , 6 , 6 , 6 , 30         ' replace ? with number (0-7)
       Deflcdchar 2 , 7 , 32 , 32 , 32 , 32 , 15 , 7 , 32       ' replace ? with number (0-7)
       Deflcdchar 3 , 30 , 6 , 6 , 6 , 6 , 30 , 28 , 32         ' replace ? with number (0-7)
    
    End Sub
    
    
    Sub 0
    
    '**** 0 ****
       Deflcdchar 0 , 32 , 7 , 15 , 12 , 12 , 12 , 12 , 12      ' replace ? with number (0-7)
       Deflcdchar 1 , 32 , 28 , 30 , 6 , 6 , 6 , 6 , 6          ' replace ? with number (0-7)
       Deflcdchar 2 , 12 , 12 , 12 , 12 , 12 , 15 , 7 , 32      ' replace ? with number (0-7)
       Deflcdchar 3 , 6 , 6 , 6 , 6 , 6 , 30 , 28 , 32          ' replace ? with number (0-7)
    
    End Sub
    Falls noch fragen sind. frage einfach, wenn du ne andere Art, eventuell sogar ne leichtre art gefunden hast die zeichen darzustellen, schreibe sie bitte.

    cu Arno
    Unser Wissen ist ein Tropfen, unser Unwissen ist wie ein Ozean.
    Sir Isaac Newton

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.02.2005
    Ort
    NRW-Bergisches Land
    Beiträge
    311
    Hi,
    einige Pfeile (ich glaube Hoch und Runter) gehören schon zum standard Zeichensatz des Displays. Die brauchst du nicht extra definieren.
    Schau mal ins Datenblatt des Displays.
    Die kannst du dann mit LCD chr(&Hxx) direkt aufrufen.
    Gruß RePi!


    *** Holzhacken ist deshalb so beliebt, weil man bei dieser Tätigkeit den Erfolg sofort sieht. ***
    *** (Albert Einstein) ***

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    32
    Beiträge
    3.467
    Das werde ich mir mal anschauen.
    danke für den Tipp.
    Ich weiß, das ich irgendwo mal eine Tabelle mit verschiedenen Pfeilen gesehen habe, aber dass das im Datenblatt des Displays steht...

    Vielen Dank für den Tipp!!

    jon
    Nice to be back after two years
    www.roboterfreak.de

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    32
    Beiträge
    3.467
    Ich habe mir jetzt mal die Tabelle angeschaut, werde aus der aber nicht ganz schlau.
    Das Datenblatt zu meinem Display gibt es hier. Ich hoffe, dass der Link geht.
    Wie mache ich aus dem, was in der Tabelle geht dieses LCD chr(&Hxx)??
    Das verstehe ich nicht ganz.

    jon
    Nice to be back after two years
    www.roboterfreak.de

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.02.2005
    Ort
    NRW-Bergisches Land
    Beiträge
    311
    Ja genau diese Tabelle meine ich.
    Ok war doch der Pfeil nach rechts und links dabei.
    Da es binär angegeben ist, kannst du für den Pfeil nach Links also
    LCD chr(&B01111111) oder (&H7F) oder (127) schreiben und für Rechts halt LCD chr(&B01111110) = (126).
    Leider sind nicht alle Pfeilrichtungen dabei.
    Dies spart aber mindestens zwei Deflcdchar Plätze.
    Gruß RePi!


    *** Holzhacken ist deshalb so beliebt, weil man bei dieser Tätigkeit den Erfolg sofort sieht. ***
    *** (Albert Einstein) ***

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.12.2005
    Ort
    Nähe Mainz
    Alter
    32
    Beiträge
    3.467
    Danke!!
    Dann werde ich das mal so ausprobieren.

    jon
    Nice to be back after two years
    www.roboterfreak.de

Berechtigungen

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

LiFePO4 Speicher Test