Nokia 6100 DisplayAnsteuerung in Assembler

Gast #241287
Lesenswert?

Hallo,

Ich habe einen Code zur Ansteuerung des bekannten
NOKIA 6100 Farbdisplays, in AVR-Assembler, geschrieben.
Wie das hald bei etwas fortgeschrittenen Anfängern so ist, funktioniert
der Code nicht. Nun versuche ich schon seit einem
Monat oder länger, den Fehler zu finden. Ich habe auch
mehrmals in den anderen Foren über dieses Display gestöbert
aber nichts gefunden was mir weiterhelfen konnte.

Im Anhang ist mein Code als Textdatei.

Ich hoffe die Profis unter euch oder sonst wer
kann mir den/die Fehler zeigen und mir sagen
was ich machen muss.

Ich währe sehr Dankbar dafür.

Ich benutze den ATmega8L (3.3V) mit 1MHz internem Takt.


~ Mfg. Lightning
Angehängte Dateien:
Gast #241292
Lesenswert?

Aja sieh mal an wer da den EPSON Controller
ansteuern will, der Jens Dinspel.
Zuerst motzt er rumm weil ich hier frage
ob mir jemand helfen kann, (ok 2mal posten
is ned gut) und jetzte bettelt er um
Codes.

@Jens
Selberschreiben
Gast #241295
Lesenswert?

@Lightning

Hab gerade mal über deinen Code geschaut.
Du versucht aus einem bedingten Sprung (nicht Call !) mit ret zurück zu
springen:

>brcs csub1
>
>(...)
>
>csub1:
>sbi disp_PORT, disp_data
>ret

Das ret springt nach dem 1. Bit aus deinem display_command - das ist
aber wohl nicht gewollt.

Beste Grüße
Thomas
Gast #241296
Lesenswert?

Hi!
Thomas hat völlig Recht und in der Daten-Sub machst du das selbe.
So sollte es aber erstmal hinhauen:

display_command:
  cbi disp_PORT, disp_clk
  cbi disp_PORT, disp_data  ;kommando soll übertragen werden
  sbi disp_PORT, disp_clk    ;1. bit wird gelesen

  ldi disp_counter, 0x08  ; noch 8 bit übertragen

dis_comand1:
  cbi disp_PORT, disp_clk

  lsl disp_cmd      ;Bit ins carry schieben, MSB first


        brcc csub2
        sbi disp_PORT, disp_data
        rjmp c_clk
csub2:  cbi disp_PORT, disp_data
          ;Bit vorbereiten
c_clk:  sbi disp_PORT, disp_clk

  dec disp_counter

breq cnext
rjmp dis_comand1

cnext:
ret


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
~~~~~~~~~~~~~
display_data:
  cbi disp_PORT, disp_clk
  sbi disp_PORT, disp_data  ;daten sollen übertragen werden
  sbi disp_PORT, disp_clk    ;1. bit wird gelesen

  ldi disp_counter, 0x08    ; noch 8 bit übertragen

disp_data1:
  cbi disp_PORT, disp_clk

  lsl disp_daten        ;Bit ins carry schieben, MSB first

        brcc dsub2
        sbi disp_PORT, disp_data
        rjmp d_clk
dsub2:  cbi disp_PORT, disp_data
              ;Bit vorbereiten

d_clk:  sbi disp_PORT, disp_clk

  dec disp_counter

breq dnext
rjmp disp_data1

dnext:
ret

Ach nochetwas, wie schnell darf denn der "disp_clk" überhaupt
sein?(momentan 5Takte)

Viel Erfolg, Uwe
Gast #241297
Lesenswert?

@ Thomas P.
@ Uwe

Hallo,

Danke der Antworten und Infos !!!
Kommen zwar n bisschen spät weils schon ne weile funktioniert
aber trotzdem Danke.

Ich hab da noch ne frage:
Mit welchem programm convertiert ihr die bilder
für die AVR Tabelle zum auslesen fürs display ???

Mfg. Lightning
Gast #241298
Lesenswert?

@Uwe
Datenblatt sagt: serial clock SCLK period (SCLK) 150ns.
Also gut 6,6 Mhz.

@Lightning
Mit Hex Workshop (http://www.hexworkshop.com/) kann man aus Binärdaten
C-Tabellen erstellen. Sollte mit Assembler auch gehen.


Hatte auch mal eine kleine Ansteuerung in C gebastelt. Bilder kann man
über UART als RGB-8-Bit RAW-Daten hochladen. Diese werden dann auf dem
Atmel in das Display-Format umgerechnet.

Den Source und ein paar Bilder von dem Display habe ich hier:
http://thomaspfeifer.net/nokia_6100_display.htm

Beste Grüße
Thomas

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren