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?
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.
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
Schneller: Tabelle mit 256 Bytes im Flash mit den "getauschten" Werten anlegen und das in der Routine einbauen, die die Bytes ausgibt.
Sauger schrieb: > indem du vor dem Zugriff auf den Port die Reihenfolge drehst. Ich programmiere aber in BASCOM :-)
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.
Hi Gibt einen elegante Methode, allerdengs in C: Beitrag "Re: Inline Assembler- Bits spiegeln" MfG Spess
Grafik? Dann kann ich nur B e r n d W. zustimmen. Sonst hast Du eine prima Fehlerquelle für die Zukunft.
Moin, Hallo schrieb: > Es handelt sich um ein Grafik LCD 128x64 Ks0108 Controller Vorschläge gab es ja genug. Steckst du in deinen C-Buch noch im Editorial :-) hp-freund schrieb: > Sonst hast Du eine prima Fehlerquelle für die Zukunft. Ich möchte nicht dumm sterben, gibt es eine Erklärung? MfG
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.
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.
>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 !
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
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.
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 ;)
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!
>Jedoch wird das Display trotzdem nicht Initialisiert,
Wie hast du das festgestellt? Was siehst du?
Dreh mal am Kontrast. Ändert sich da was?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.