- fchao-Sinus-Wechselrichter AliExpress         
Seite 8 von 8 ErsteErste ... 678
Ergebnis 71 bis 76 von 76

Thema: Library für GLCD Hyundai HP12542R-DYO mit SED1565

  1. #71
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo albundy,
    es war wirklich das Kabel, eigentlich logisch bei 16 MHz Taktfrequenz.
    Ich habe heute mittag mal das Kabel auf 5 cm gekürzt und wie durch
    ein Wunder waren die unerwünschten Bitmuster verschwunden.
    Nochmal ganz herzlichen Dank.

  2. #72
    Neuer Benutzer Öfters hier
    Registriert seit
    07.02.2005
    Beiträge
    12
    Hallo.

    Hat schonmal jemand versucht die Displaydaten zu lesen um auf Pixelebene zu arbeiten? Ich bekomme es nicht hin (AVR-Assembler-Beginner).

    Ich habe Albundys LIB als Basis genommen und wollte zum Test mal den Display-Inhalt invertieren. Teilweise gelingt das auch, aber pro Display-Spalte immer nur bei ein paar (meist aufeinanderfolgenden) Bits. Pro Display-Speicher-Seite dann aber auch unterschiedlich viele (mal 3, mal 4, 5). So habe ich ein hübsches Streifenmuster (siehe Anhang)


    Habe das Kabel schon auf 6cm gekürzt um Übersprechen auszuschliessen.

    Hier ist der Code
    Code:
    ;----------------------------------------Modifizierte Kopie Von Seddata
    [sedread]
    $external Seddelay , Sedkonst
    Sedread:
      ldi r18,$00
      Out Data_port , R18 ; Pull -ups Aus
      Out Data_direction , R18 ; Datenport Auf Eingabe
    
      ldi r18, (2^Pin_Res+2^Pin_A0+2^Pin_rw)            ;High for Reset + A0 + RW
      Out Ctrl_port , R18
      rCall Seddelay
      ldi r18, (2^Pin_Res+2^Pin_A0+2^Pin_E+2^Pin_rw)    ;High for Reset + A0 + E + RW
      Out Ctrl_port , R18
      rCall Seddelay
      ldi r18, (2^Pin_Res+2^Pin_A0+2^Pin_CS1+2^Pin_rw)  ;High for Reset + A0 + CS1 + RW
      Out Ctrl_port , R18
      rcall Seddelay
    
      in r24,data_port_in                               ;Datenport nach R24 lesen
      ldi r18,$ff                                       ;Datenport wieder auf Ausgabe
      Out Data_direction , R18
      ret
    [end]
    ;----------------------------------------Modifizierte Kopie Von Grcls
    [grinv]
    $external Sedctrl , Seddata , Sedread , Sedkonst
    Grinv:
      clr r24                                            ;Arbeitsregister
      clr r25                                            ;Seiten-Register
      clr r26                                            ;Spalten-Register
    Grinv10:
      mov r24,r25                                        ;Seite ins Arbeitsregister
      ori r24,$B0                                        ;SET-PAGE-Befehl dazu (oberes Nibble, unteres = Seite 0-7)
      Out Data_port , R24
      rcall Sedctrl
      ldi r24,$10                                        ;SET-COLUMN-Befehl (Hi-Nibble der Spalte im unteren 4 Bits)
      Out Data_port , R24
      rcall Sedctrl
      clr r24                                            ;2. Teil der Spaltenadresse (Lo-Nibble), hier auch 0
      Out Data_port , R24
      rcall Sedctrl
    
      ldi r24,$e0                                        ;Read-Modify-Write-Befehl
      Out Data_port , R24
      rcall Sedctrl
    
    Grinv20:
      rcall Sedread                                      ;Daten nach R24 lesen
      com r24                                            ;Daten invertieren
    
      Out Data_port , R24
      rcall Seddata                                      ;Daten zurueckschreiben
    
      inc r26                                            ;naechste Spalte
      cpi r26,128                                        ;schon bei 128, Dann Seite fertig!
      brne grinv20                                       ;sonst weiter machen
    
      ldi r24,$ee                                        ;Ende Read-Modify-Write-Befehl (um SET-COLUMN aufrufen zu können)
      Out Data_port , R24
      rcall Sedctrl
    
      clr r26                                            ;wieder bei Spalte 0 anfangen
      inc r25                                            ;naechste Seite
      cpi r25,8                                          ;schon bei 8, Dann komplett fertig!
      brne grinv10                                       ;sonst weiter machen
      ret
    [end]
    Hab ich irgendwo ein Timingproblem mit den Displaydaten?

    Ich wäre für etwas Hilfe wirklich dankbar.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken dsc00045.jpg  

  3. #73
    Erfahrener Benutzer Begeisterter Techniker Avatar von albundy
    Registriert seit
    16.10.2004
    Beiträge
    282
    Hallo,

    der Ablauf beim lesen muss ein anderer sein.

    Code:
      ldi r18, (2^Pin_Res+2^Pin_A0+2^Pin_rw)            ;High for Reset + A0 + RW 
      Out Ctrl_port , R18 
      rCall Seddelay 
      ldi r18, (2^Pin_Res+2^Pin_A0+2^Pin_E+2^Pin_rw)    ;High for Reset + A0 + E + RW 
      Out Ctrl_port , R18 
      rCall Seddelay 
    
      in r24,data_port_in                               ;Dummyread lt. Datenblatt
      in r24,data_port_in                               ;Datenport nach R24 lesen
    
      ldi r18, (2^Pin_Res+2^Pin_A0+2^Pin_CS1+2^Pin_rw)  ;High for Reset + A0 + CS1 + RW 
      Out Ctrl_port , R18 
      rcall Seddelay 
    
    ;hier zu lesen ist sinnlos, da CS1 jetzt High ist.

  4. #74
    Neuer Benutzer Öfters hier
    Registriert seit
    07.02.2005
    Beiträge
    12
    Danke Albundy!

    Manchmal braucht's nur einen kleinen Hinweis!
    ..OK, manchmal würde es auch reichen, wenn ich das Datenblatt ordentlich lesen würde!

    Der entscheidende Tipp ist der Dummy-Read. Allerdings nicht mit 2x IN ... sondern 2x Read ans Display senden (also RES, A0, E, RW auf high).
    Ausserdem darf vor dem IN keine Pause sein, weil die Daten wohl nicht lange genug anliegen. So hat's bei mir gestern nach kurzem ausprobieren geklappt.
    Werde mich am WE mal daran machen ein paar einfache Grafik-Routinen zu basteln.

  5. #75
    Neuer Benutzer Öfters hier
    Registriert seit
    22.05.2006
    Beiträge
    9
    Hallo.

    Lange ist's her mit dem letzten Eintrag. Habe trotzdem 3 Fragen.

    1.Muß die Quarzfrequenz auch in der lib angepasst werden ?
    2.Wozu wird R/W definiert ? Wird im Code doch garnicht verwendet.
    3.Wo ist das Tool zum Konvertieren der s/w Bitmaps hin ?

    Danke und Gruß

  6. #76
    Hallo,

    hab mal ne frage. Womit werden die Fonts erstellt? und wofür is der 2te Parameter bei Grdat()

    Declare Sub Grdat(byval Variable As String , Byval Stelle As Byte , Byval Font As String) 'Stelle = Ausgabedigits 1-5

    kann ich eigene Symbole malen und in einer Font hinterlegen? z.b. anstelle der #(raute) ein eigenes Symbol?

Seite 8 von 8 ErsteErste ... 678

Berechtigungen

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

Labornetzteil AliExpress