Forum: Mikrocontroller und Digitale Elektronik Grafik LCD mit T6963 flackert + Streifen


von hans23 (Gast)


Lesenswert?

Hallo,
will auf einem Grafik LCD Display einfach nur testweise den Text "HALLO" 
anzeigen.
Der Text wird zwar angezeigt, aber das ganze Display flackert halt und 
es ziehen Streifen durch das Bild:

http://es.youtube.com/watch?v=3zM1OuI9040

Dass nach dem Beispieltzext die ganzen O's angezeigt werden ist nicht 
das Problem.

Meine Frage ist nur ob ich irgendwas an der Software falsch gemacht 
habe, oder ob das Display im Ar*** ist.
Achso der PIC sendet die Daten für den Grafikcontroller nur einmal.

Dabnke schonmal für Eure Hilfe...

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

hans23 wrote:
> Achso der PIC sendet die Daten für den Grafikcontroller nur einmal.

Bist du sicher? Den Effekt mit dem Streifen, gibt es, wenn der Reset des 
Display's angesteuert (lange) wird.

Gruß Sascha

von hans23 (Gast)


Lesenswert?

Der Reset-Pin ist nur am  anfang für ca 25 ms auf low, sonst ist er 
immer auf high und wird gar nicht mehr angefasst.
1
main
2
  call  lcd_config
3
  call  write_test
4
5
done
6
  goto  done


Der Chip-Enabled-Pin bleibt nach dem letzten Befehl auf high. (wenn er 
auf low verblibt ändert sich auch nichts).

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

Macht der Controller vielleicht einen Reset??

Gruß Sascha

PS. Schaltung und Code wären nicht schlecht

von hans23 (Gast)


Angehängte Dateien:

Lesenswert?

Du hattest Recht - hab nochmal mit dem Oszi nachgeschaut und der PIC 
macht in unregelmässigen Abständen Resets auf der Reset-Leitung. Aber 
der PIC selber macht keine Resets.
Hab mal den Reset-Eingang vom LCD manuell auf high gesetzt - brigt auch 
nichts. Dann ist alles dunkel.
Hab mal die sources angehägt.

von holger (Gast)


Lesenswert?

write_command
  movwf  command
;status check
  call   read_status
  btfss  STA0
  goto  main

Was soll denn der Quatsch mit goto main da?
Aus einer Subroutine geht man nur mit return raus.
Sonst läuft dir irgendwann der Stack über, und bumm!

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

#define  HALT_  PORTB,4    ; Stop the Oscillation of Clock

Wofür wird das genutzt?

Gruß Sascha

von hans23 (Gast)


Lesenswert?

@Sacha:
gute Frage - weiß auch nicht was das bringen soll, die Clock vom LCD 
Controller anzuhalten.

@Holger: oh, stimmt - schlamprig programmiert. Aber das löst das Problem 
leider noch nicht :/.

da sollte eigentlich
1
goto  write_command
 stehen. das return kommt weiter unten:
1
write_command
2
  movwf  command
3
;status check
4
  call   read_status
5
  btfss  STA0
6
  goto  write_command
7
  btfss  STA1
8
  goto  write_command
9
10
;PORTC auf Ausgang umschalten
11
  banksel  TRISC
12
  movlw  d'0'
13
  movwf  TRISC
14
  banksel  PORTC
15
16
  movfw  command
17
  movwf  DAT
18
   bsf  RD_    ;read disabled
19
  bcf  WR_    ;write enabled
20
  bsf  CD_    ;command
21
  bcf  CE_    ;chip enabled
22
  nop
23
  bsf  CE_    
24
  return

von holger (Gast)


Lesenswert?

>@Holger: oh, stimmt - schlamprig programmiert. Aber das löst das Problem
>leider noch nicht :/.

Das glaub ich gerne. Du hast ja auch noch ein paar
mehr von diesen goto main drin ;)

von hans23 (Gast)


Lesenswert?

naja hatte insgesamt 3 gefunden...
aber wie gesagt, hatte nichts geändert.

von hans23 (Gast)


Lesenswert?

Ich hab nochmal getestet ob der PIC überhaupt zum ende kommt, indem ich 
einfach PortB, 7 setze, nachdem er alle an das Display gesendet hat - 
Resultat: PIC resettet sich ca 10ms nachdem Portb,7 gesetzt wurde und 
dann geht das ganz spielchen von vorne los.
Hab nur überhaupt kein plan wieso er das tut. Hab schon den pic 
getauscht - ohne Erfolg.
1
main
2
  call  lcd_config
3
  call  write_test
4
5
  bsf    PORTB,7
6
7
done
8
  goto  done

von holger (Gast)


Lesenswert?

>Hab nur überhaupt kein plan wieso er das tut. Hab schon den pic
>getauscht - ohne Erfolg.

Hört sich irgendwie nach Watchdog an.
Könnte auch dein Netzteil sein.

von hans23 (Gast)


Lesenswert?

hab jetzt mal nen 100nF Kondensator von VCC nach GND gesteckt. Jetzt 
resettet sich der PIC auch nicht mehr, flackert nicht mehr, aber display 
zeigt jetzt nur noch Datenmüll an - mein HALLO kommt gar nicht mehr.
Komisch wobei ich doch sonst nichts an der SW geändert hab...
Aber das eigentliche Problem ist gelöst.

Aber denkt man gar nich was so eine fehlender 100nF C ausmacht.
Auf der Leiterplatte wäre er drauf gewesen^^

von hans23 (Gast)


Angehängte Dateien:

Lesenswert?

Habs bis jetzt noch nicht hinbekommen, wieder irgendetwas anzuzeigen.
Dachte, dass es evtl. am Display liegt, hab darum mal ein anderes 
128x128 Display angeschlossen, das zeigt jetzt nur nen leeres Display an 
- also nichtmal Datenmüll.
Aber soviel muss man doch gar nicht machen bei der Initialisierung.
Vielleicht sind meine Schreib-/ Leseroutinen auch fehlerhaft (was ich 
eigentlich nicht glaube)?
Ausserdem weiß ich nicht wofür Pin "MD2" ud Pin "FS1" zuständig sind.
Wär nett wenn Ihr mal über den Code rüberschauen könntet.

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.