Hallo,
ich verwende das Display
BATRON - BTHQ128064AVO-COG-FETF
in einem uC Projekt.
Zur Zeit habe ich leider das Problem, dass ich keine Anzeige auf dem
Display bekomme.
Ich benutze es im Parallel Mode.
Meine Initialisierung sieht zur Zeit wie folgt aus:
1 | GPIO_PinModeSet(Display_Control_Port, CS1 , gpioModePushPull, 1);
| 2 | GPIO_PinModeSet(Display_Control_Port, _RES , gpioModePushPull, 0);
| 3 | GPIO_PinModeSet(Display_Control_Port, A0 , gpioModePushPull, 0);
| 4 | GPIO_PinModeSet(Display_Control_Port, WR , gpioModePushPull, 0);
| 5 | GPIO_PinModeSet(Display_Control_Port, RD , gpioModePushPull, 0);
| 6 | GPIO_PinModeSet(Display_Control_Port, C86 , gpioModePushPull, 0);
| 7 | GPIO_PinModeSet(Display_Control_Port, P_S , gpioModePushPull, 1);
| 8 |
| 9 | hdisplay_LCD_read_status();
| 10 |
| 11 | GPIO_PinOutClear( Display_Control_Port , _RES );
| 12 | delay();
| 13 | GPIO_PinOutSet( Display_Control_Port , _RES );
| 14 | delay();
| 15 |
| 16 | hdisplay_LCD_read_status();
| 17 |
| 18 | hdisplay_LCD_write(0x40); // Start Display Line = 0
| 19 | hdisplay_LCD_write(0xA0); // ADC = normal (Anzeigerichtung nicht gespiegelt)
| 20 | hdisplay_LCD_write(0xA3); // LCD-Bias = 1/7 für 4,5-5,5V 1/9 für 3,3-4,5V
| 21 | hdisplay_LCD_write(0xC0); // Output Mode = nicht gespiegelt
| 22 | hdisplay_LCD_write(0x2F); // LCD-Spannungserzeugung/Regelung einschalten
| 23 | hdisplay_LCD_write(0x20); // V5 Regulator Resistor Ratio = 0
| 24 | hdisplay_LCD_write(0xAC); // Static Indicator off
| 25 |
| 26 | hdisplay_LCD_write(0x81); // Kontrasteinstellung auswählen
| 27 | hdisplay_LCD_write(25); // Kontrast = mittel (für Bias 1/7: 20-50, für 1/9: 2-10)
| 28 |
| 29 | hdisplay_LCD_write(0xA4); // Display ein
| 30 |
| 31 | hdisplay_LCD_read_status();
| 32 | hdisplay_LCD_write(0xAF);
| 33 | hdisplay_LCD_read_status();
| 34 |
| 35 | hdisplay_LCD_write(0xA6); // Display normal (nicht invertiert)
| 36 | lcd_clear();
|
Beim letzten Read Status bekommen ich auch den Status zurück, dass das
Display an ist und nicht Busy.
Wenn ich nun den Displaytest "hdisplay_LCD_write(0xA5);" , um alle
Segmente einzuschalten, verwende kann ich auf dem Display keine
Veränderung erkennen.
die "Schreib-" Funktionen sehen wie folgt aus:
1 | void hdisplay_LCD_write (uint8 LCD_Data)
| 2 | {
| 3 | GPIO_PinOutClear( Display_Control_Port , A0 );
| 4 | hdisplay_set_data_pins_out();
| 5 | GPIO_PortOutSetVal(Display_Data_Port,(LCD_Data)<<1,Display_Data_MASK);
| 6 |
| 7 | GPIO_PinOutClear( Display_Control_Port , CS1 );
| 8 |
| 9 | delay();
| 10 | GPIO_PinOutSet( Display_Control_Port , RD );
| 11 | delay();
| 12 |
| 13 | GPIO_PinOutClear( Display_Control_Port , RD );
| 14 | GPIO_PinOutSet( Display_Control_Port , CS1 );
| 15 | }
| 16 |
| 17 |
| 18 | void hdisplay_LCD_write_data (uint8 LCD_Data)
| 19 | {
| 20 | GPIO_PinOutSet( Display_Control_Port , A0 );
| 21 | hdisplay_set_data_pins_out();
| 22 | GPIO_PortOutSetVal(Display_Data_Port,(LCD_Data)<<1,Display_Data_MASK);
| 23 | GPIO_PinOutClear( Display_Control_Port , CS1 );
| 24 |
| 25 | delay();
| 26 | GPIO_PinOutSet( Display_Control_Port , RD );
| 27 | delay();
| 28 |
| 29 | GPIO_PinOutClear( Display_Control_Port , RD );
| 30 | GPIO_PinOutSet( Display_Control_Port , CS1 );
| 31 | }
|
Ich habe auch schon mit verschiedenen Kontrastwerten getestet, was
jedoch keine Änderung bewirkt.
Gruß Andi
Grüße,
habe das gleiche Problem mit dem Display BTHQ128064. Die Initialisierung
und die PIN- Routine sieht ungefähr gleich aus.
Folgende Fragen habe ich dazu:
1. Im Batron Datenblatt werden die C's für die V1 bis V4 nicht erwähnt,
jedoch im NT7583 Display-Treiber, sind diese notwendig?
2. Gibt es mitterweile eine Lösung zum Problem der Anzeige?
Gruß und Danke
joe
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
|