LCD falsch herum

#2729399
Lesenswert?

Falls es sich um ein 2x16 Display handelt:
Eine Funktion in Assembler schreiben, welche das Data-Byte nach rechts 
ins Carry schiebt und von dort nach links in ein neues Byte. Dadurch 
werden high und low vertauscht.

Falls es sich um ein Grafik-Display handelt:
Nimm Fädeldraht un schließ es richtig an.
Gast #2729401
Lesenswert?

Moin,

indem du vor dem Zugriff auf den Port die Reihenfolge drehst.

Auf die schnelle:
1
/*************************************************************************
2
 *
3
 *  Name         : T_Byte
4
 *
5
 *  Beschreibung : Bit's in einem Byte umdrehen 0->7 / 7->0
6
 *
7
 *************************************************************************/
8
uint8_t T_Byte( uint8_t Byte )
9
{
10

11
 uint8_t Ret;
12

13
 Ret  = Byte & 0b10000000 ? 0b00000001 : 0;
14
 Ret |= Byte & 0b01000000 ? 0b00000010 : 0;
15
 Ret |= Byte & 0b00100000 ? 0b00000100 : 0;
16
 Ret |= Byte & 0b00010000 ? 0b00001000 : 0;
17
 Ret |= Byte & 0b00001000 ? 0b00010000 : 0;
18
 Ret |= Byte & 0b00000100 ? 0b00100000 : 0;
19
 Ret |= Byte & 0b00000010 ? 0b01000000 : 0;
20
 Ret |= Byte & 0b00000001 ? 0b10000000 : 0;
21

22
 return Ret;
23

24
}
... nicht schön, aber selten :-)

MfG
Gast #2729410
Lesenswert?

Einfach das hier:

>Hallo, ich habe die Pins am LCD vertauscht.

in Ordnung bringen.


>Die Hintergrundbeleuchtung ist bestimmt schön hell;)

übrigens wird die RS232 auch nicht funktionieren:
Der IC2 hat keine Betriebsspannung.
#2729481
Lesenswert?

holger schrieb:
>Die Hintergrundbeleuchtung ist bestimmt schön hell
Normalerweise hat die Hintergrundbeleuchtung keinen eingebauten 
Widerstand zu Strombegrenzung.
=> Bitte prüfe nochmal A/K der Hintergrund-LED und verpasse ihr einen 
genügend großen Vorwiderstand.

lippy schrieb:
>Der IC2 hat keine Betriebsspannung.
Der Max232 hat 16 Pins. Im Plan sind 14 sichtbar und GND/VCC sind schon 
als Potentiale in der Library definiert. Wenn die beschaltet sind hat er 
Saft. V+/V- sind die Speicherkondensatoren.
=> Dein IC2 ist richtig beschaltet

Hallo schrieb:
>Es handelt sich um ein Grafik LCD 128x64 Ks0108 Controller.
>Ich programmiere aber in BASCOM.
Beides schlechte Voraussetzungen für die Nutzung eines Grafikdisplays, 
weil beides die Darstellung auf dem kleinen mega32 unnötig verlangsamt. 
Auch wenn es nur ein s/w-Display ist, dauert das sehr sehr lange.
=>Wenn du es unbedingt in Bascom machen willst, dann kreuze die Strippen 
manuell per Draht. Die Pins am mega32 und am Display sind ja weit genug 
auseinander.
Gast #2729495
Lesenswert?

>GND/VCC sind schon  als Potentiale in der Library definiert.

Falls alle Potentiale exakt identisch heissen. Darauf habe ich mich noch 
nie verlassen. Zumal diese Pwr-Pin-Paar einen eigenen Block-Cs bedarf. 
Wenn ich den male, kann ich die IC-Versorgung dazu klicken.

Der Schaltplan-übersicht und -vollständigkeit halber !
Gast #2729516
Lesenswert?

Moin,

Hallo schrieb:
> Hallo, ich habe die Pins am LCD vertauscht. So dass es nicht in der
> Reihenfolge PA0-PA7 ist sondern PA7-PA0. Wie kann ich dies nun im
> Programm tauschen?

... und postete die C-Quellen

Knallo schrieb:
> Sauger schrieb:
>> indem du vor dem Zugriff auf den Port die Reihenfolge drehst.
>
> Ich programmiere aber in BASCOM :-)

René B. schrieb:
> Hallo schrieb:
>>Es handelt sich um ein Grafik LCD 128x64 Ks0108 Controller.
>>Ich programmiere aber in BASCOM.

... hat Hallo nicht geschrieben, beachte die Namen

Sauger schrieb:
> hp-freund schrieb:
>> Sonst hast Du eine prima Fehlerquelle für die Zukunft.
> Ich möchte nicht dumm sterben, gibt es eine Erklärung?

... warte noch :-)

hp-freund schrieb:
> Und bitte die LCD read Funktion nicht vergessen...

jep. Wo ist eigentlich "Hallo" geblieben?

MfG
#2729573
Lesenswert?

Tom M. schrieb:
> hp-freund schrieb:
>> Grafik? Dann kann ich nur B e r n d W. zustimmen. Sonst hast Du eine
>> prima Fehlerquelle für die Zukunft.
>
> Nö. Einfach die "Übersetzung" der Pins konsequent umsetzen und dann
> passt's immer.

In einer idealen Welt würde ich dir zustimmen.
Praktisch gesehen gebe ich aber eher hp_freund recht. Sowas sind 
typische Fallen, die man sich selbst für die Zukunft stellt.

Nicht lange fackeln. Das lässt sich mit einem scharfen Messer und etwas 
Fädeldraht in 20 Minuten beheben und dann hat man (auch in der Zukunft) 
seine Ruhe. Und das nächste mal passt man eben besser auf, was man da im 
Schaltplan hinmalt.
#2729661
Lesenswert?

Karl Heinz Buchegger schrieb:
> In einer idealen Welt würde ich dir zustimmen.
> Praktisch gesehen gebe ich aber eher hp_freund recht. Sowas sind
> typische Fallen, die man sich selbst für die Zukunft stellt.

Seh ich auch so. In nem halben Jahr schaut man nochmal in das Projekt 
rein, kopiert sich vielleicht was in das neue Projekt bzw. will nur mal 
schaun wie man ein Problem damals löste und fragt sich dann warums nicht 
klappt. Kann Tage dauern bis man merkt dass das Byte verkehrt herum ist 
und nochmal Tage dauern bis man wieder raus hat warum man das damals so 
löste. Lieber gleich richtig machen ;)
Gast #2730498
Lesenswert?

So, habe die Pins jetzt mit Fädeldraht vertauscht. Jedoch wird das 
Display trotzdem nicht Initialisiert, habe es mit dem oben geposteten 
C-Code und auch in Bascom Probiert, beides mal nichts. Für die 
Hintergrundbeleuchtung ist am LCD ein Vorwiderstand eingelötet!

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