Forum: Mikrocontroller und Digitale Elektronik Nokia Display - Bitte helft mir !!!


von Lightning (Gast)


Angehängte Dateien:

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 wie
ich diesen entfernen kann.

Ich währe sehr Dankbar dafür.

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


~ Mfg. Lightning

von Lightning (Gast)


Lesenswert?

Weiß denn keiner eine Antwort ???

von Lightning (Gast)


Lesenswert?

Kann es vieleicht an der Command Routine liegen ???

von Lightning (Gast)


Lesenswert?

Will denn keiner was dazu sagen ??

von Fasti (Gast)


Lesenswert?

Hi!

Ich kann dir leider bei deinem Problem nicht direkt helfen ABER:
Bist du dir sicher, dass das Display eines mit Philips Controller und
nicht mit Epson ist? Angeblich werden die Philips Displays seit einem
Jahr nicht mehr produziert (stand im Codesammlungspost zum Nokia 6100
Display). Sollte es ein Philips sein und es trotzdem nicht
funktionieren und du Hardwareprobleme (wegen Pegelwandlung 5V-3V)
auschliessen kannst, dann solltest du mal ape oder Hagen kontaktieren,
die sind hier die Profis. Eventuell unter www.apetech.de im Forum
probieren.....

mfg

Fasti

von frankieboy (Gast)


Lesenswert?

@Lightning

Also so wie ich das sehe, wird in display_data und display_command nach
diesen Sprüngen

brcs csub1
brcc csub2

brcs dsub1
brcc dsub2

ein return durchgeführt, das heisst es wird die subroutine beendet und
nur ein bit und nicht 8 bit gesendet.

Gruss
Frank

von Lightning (Gast)


Lesenswert?

Hallo,

Erstmal Danke für die Antworten.

@Fasti
Ja es ist eines mit Phillips Controller (Braun mit Lötpads)
und es hat nirgends Hardwareprobleme. Das Display
funktioniert einwandfrei da ich es mit dem C-Code von
www.apetech.de getestet habe.

@frankieboy
Ja das könnte das Problem sein aber springt
das ret nicht wieder dorthin wo die subroutine
aufgerufen wurde ???

Wenn nein, wie muss ich meinen Code ändern damit es
das nicht macht ??


~Mfg. Lightning

von Andi K. (Gast)


Lesenswert?

"Wie das hald bei etwas fortgeschrittenen Anfängern..."
Meintest Du nicht blutiger?
Nix für Ungut!

Mit BRCC, BRCS oder BRnn, oder einfach mit "Branch" ruft man keine
Sub-Routine auf, sondern man verzeigt wie mit JMP ("Jump") im
Programm an eine andere Stelle bzw. setzt den Programm Counter (PC) auf
eine andere Programm-Adresse.
Demzufolge legt BRCC oder BRCS keine Rücksprungadresse auf den Stack
wie CALL oder RCALL und demzufolge wird auch nicht nach dem BRCC oder
BRCS durch RET zurück gesprungen.
Was Du brauchst, ist SBRC oder SBRS (Skip if Bit in Register is
clear/set).

Probier mal folgendes innerhalb der "Bitschiebe-Schleife":

SBRC disp_cmd,7           ;Ist MSB gelöscht, dann Befehl überspringen.
sbi disp_PORT, disp_data  ;Ansonsten Befehl ausführen.
SBRS disp_cmd,7           ;Ist MSB gesetzt, dann Befehl überspringen.
cbi disp_PORT, disp_data  ;Ansonsten Befehl ausführen.
lsl disp_cmd              ;Alle anderen Bits Bit für Bit zum MSB.

Es kann noch sein, das Du dem LCD mit ein oder ein paar "NOPs" noch
etwas Zeit geben musst, aber da bin ich mir nicht sicher.

MfG
Andi

von Lightning (Gast)


Lesenswert?

@Andi K.

Wow das wars. Genau das war der Fehler.
Jetzt funktioniert alles Danke auch
Danke an die Anderen.

Mfg. Lightning

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.