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

Thema: Problem mit Grafik Display( EA DOGM132-5 )

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.242
    Leider progge ich selber nicht in Bascom, kann Dir aber zu deinen Fragen eventuell ein paar Antworten geben.
    Üblicherweise läuft eine SPI so ab.
    Zuerst wird das CE ( SS ) Signal des entsprechenden Zielchips vom Controller aus aktiviert.
    Dann wird das erste zu übertragende Bit auf MOSI ( D-OUT vom Controller ) gelegt.
    Nun wird ein CLK Impuls erzeugt.
    Dann kommt das nächste Bit, ein CLK usw. Das ganze Spielchen geht so lange, bis alle gewünschten Bits für ein komplettes Komando übertragen sind.
    Dann wird das CE wieder deaktiviert.
    Ob die Pegel nun High oder Low aktiv sein müssen, sollte im Datenblatt deines Displays stehen.

    Ich hab nun nicht das Datenblatt deines Displays gewälzt, aber üblicherweise muß so ein Display Initialisiert werden. Ausserdem wird es Steuersequenzen geben, die z.B. die Adresse des aktuellen Pixels aus zu wählen.
    Alle diese Informationen müssen über SPI übertragen werden.
    Die SPI ist in Bascom anscheinend schon implementiert, das Problem also gelöst.

    Üblicherweise hat so ein Display auch keinen eingebauten Zeichensatz.
    Das bedeutet, Du musst zumindest einen Zeichensatz programmieren.
    In diesem Zeichensatz werden dann die aktiven Pixel für jedes gewünschte Zeichen abgespeichert.
    Sinnvollerweise orientiert man sich dabei am ASCII Zeichensatz.
    Bei manchen deutschen Umlauten ist das manchmal etwas schwierig ( verschiedene Codepages ).
    Im Hauptprogramm wird dann die Startadresse ( Also das gewünschte Zeichen ) dieses Tabelenabschnittes übergeben und eine ( Library- ) Routine überträgt dann alle nötigen Bytes an das Display.

    Auch die Funktionen für Kreise, Linien und Rechtecke braucht man noch.

    Alle diese Funktionen schreibt man dann in eine sog. Library, die man dann bequem von der Hauptroutine aus ansteuern kann.
    z.B. write_char('A',0,16) würde den Buchstaben A, ganz links in die 16 Zeile schreiben ( C-Syntax! ).
    Ich würde an Deiner Stelle versuchen eine fertige Library für das von dir verwendete Display für Bascom zu kriegen ( Andere Projekte, Bascom Forum ?!? ).
    Eventuell ist da ja auch was passendes in der neuesten Bascom Version drin?
    Wenn Du so eine Library selber schreiben willst, wird etwa 50% der Zeit für das Projekt dafür drauf gehen.
    Für die Konvertierung von Zeichensätzen aus dem PC gibt es kleine Hilfsprogramme, die aber üblicherweise Code für AVR GCC generieren.
    Die Zeichentabellen selber sollten aber auch für Bascom brauchbar sein.
    Die Syntax und die Präprozessor Direktiven müssten halt angepasst werden.

    Ich denk nicht, das sich jemand hier die Zeit nehmen wird eine komplette Library zu proggen, wenn er diese nicht selber braucht.

    Noch was... Gib mal die Suchbegriffe EA DOGM132 Bascom library bei Google ein. Da kommen ein paar Vierversprechende Ergebnisse raus.

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    23.07.2008
    Beiträge
    96
    hey
    danke für die Antwort....
    ja wie ich die Spi in Bascom konfiguriere weiß ich und das ich um Texte auszugeben des am besten mit einer library schreibt auch ( die umsetztung wird da auch noch mal anderst aussehen ).
    ...Ich hab auch schon danach gesucht da gibst en paar Sachen mein Problem ist noch bei der Initialisierung und ich hoffe mir kann da einer helfen der in Bascom programmiert. Ich hab die Befehle für die Initialisierung, nur wie oben genannt weiß ich nicht wie ich die 14 Befehle ( ein Byte nach einander ) an das Display sende also wie das im Befehl aussieht. Ich hab ja im obigen Beispielprogramm die Initialisierung drin also die einzelnen Bytes. Mein Problem ist, dass ich nicht richtig weiß wie ich des mit spiout ausgeb. Könnte mir vieleicht einer nur en Tipp geben in Bascom??
    Danke
    lg Micha

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    23.07.2008
    Beiträge
    96
    Hey alle zusammen wollt nur mal Bescheid geben. Ich denk ich habs jetzt hin bekommen, zumindest tauchten schon mal auf dem Display viele Pixel auf . Ich hab mal testweise einfach alle Pixel gesetzt und wieder ausgemacht. Den Befehl dazu hab ich vom Datenblatt. Alle Pixel auszustellen geht auch einwandfrei nur bei alle Pixel setzten werden nicht alle angezeigt sondern nur immer mal wieder welche es sieht so aus wie bei einem fernsehe wenn er kein empfang hat. Hat jemand von euch ne Ahnung woran des liegen könnte? Weil der befehl is aus der Befehlstabelle vom Datenblatt oder is des en Anzeichen dafür das des Display nicht richtig initialisiert wurde.
    MFG Micha



    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $baud = 9600
    
    
    
    'Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = High , Phase = 0 , Clockrate = 16 , Noss = 0
    Config Spi = Soft , Din = Pinc.7 , Dout = Pinc.6 , Ss = Pinc.5 , Clock = Pinc.4
    
    Config Portc.3 = Output
    Lcdreset Alias Portc.3
    
    Config Portc.2 = Output
    A0 Alias Portc.2
    
    
    
    Dim Command1 As Byte
    Dim Command2 As Byte
    Dim Command3 As Byte
    Dim Command4 As Byte
    Dim Command5 As Byte
    Dim Command6 As Byte
    Dim Command7 As Byte
    Dim Command8 As Byte
    Dim Command9 As Byte
    Dim Command10 As Byte
    Dim Command11 As Byte
    Dim Command12 As Byte
    Dim Command13 As Byte
    Dim Command14 As Byte
    
    
    
    
    Dim Lcdon As Byte
    Dim Lcdoff As Byte
    Dim Setall As Byte
    Dim Alloff As Byte
    
    
    Command1 = &H40
    Command2 = &HA1
    Command3 = &HCO
    Command4 = &HA6
    Command5 = &HA2
    Command6 = &H2F
    Command7 = &HF8
    Command8 = &H00
    Command9 = &H23
    Command10 = &H81
    Command11 = &H1F
    Command12 = &HAC
    Command13 = &H00
    Command14 = &HAF
    
    Lcdon = &HAF
    Lcdoff = &HAE
    
    Setall = &HA4
    Alloff = &HA5
    
    
    Spiinit
    
    Lcdreset = 1
    Waitms 100
    Lcdreset = 0
    Waitms 100
    Lcdreset = 1
    
    A0 = 0
    
    
    Spiinit
    
    Spiout Command1 , 1
    Spiout Command2 , 1
    Spiout Command3 , 1
    Spiout Command4 , 1
    Spiout Command5 , 1
    Spiout Command6 , 1
    Spiout Command7 , 1
    Spiout Command8 , 1
    Spiout Command9 , 1
    Spiout Command10 , 1
    Spiout Command11 , 1
    Spiout Command12 , 1
    Spiout Command13 , 1
    Spiout Command14 , 1
    
    
    Do
    
    
    Wait 1
    
    Spiout Alloff , 1
    
    
    Wait 2
    
    Spiout Setall , 1
    
    Loop
    
    
    
    End

Berechtigungen

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

LiFePO4 Speicher Test