diff options
Diffstat (limited to 'firmware/drivers')
-rw-r--r-- | firmware/drivers/lcd-h100.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/firmware/drivers/lcd-h100.c b/firmware/drivers/lcd-h100.c index 23c88100b9..15cb351195 100644 --- a/firmware/drivers/lcd-h100.c +++ b/firmware/drivers/lcd-h100.c | |||
@@ -39,7 +39,7 @@ | |||
39 | #define LCD_CNTL_TEMP_GRADIENT_SELECT 0x4e | 39 | #define LCD_CNTL_TEMP_GRADIENT_SELECT 0x4e |
40 | #define LCD_CNTL_OSC_FREQUENCY 0x5f | 40 | #define LCD_CNTL_OSC_FREQUENCY 0x5f |
41 | #define LCD_CNTL_ON_OFF 0xae | 41 | #define LCD_CNTL_ON_OFF 0xae |
42 | #define LCD_CNTL_OSC_ON_OFF 0xab | 42 | #define LCD_CNTL_OSC_ON_OFF 0xaa |
43 | #define LCD_CNTL_OFF_MODE 0xbe | 43 | #define LCD_CNTL_OFF_MODE 0xbe |
44 | #define LCD_CNTL_REVERSE 0xa6 | 44 | #define LCD_CNTL_REVERSE 0xa6 |
45 | #define LCD_CNTL_ALL_LIGHTING 0xa4 | 45 | #define LCD_CNTL_ALL_LIGHTING 0xa4 |
@@ -171,25 +171,26 @@ void lcd_init(void) | |||
171 | sleep(1); | 171 | sleep(1); |
172 | GPIO1_OUT |= 0x00004000; | 172 | GPIO1_OUT |= 0x00004000; |
173 | sleep(1); | 173 | sleep(1); |
174 | 174 | ||
175 | lcd_write_command(LCD_CNTL_ON_OFF | 1); /* LCD ON */ | ||
176 | lcd_write_command(LCD_CNTL_COLUMN_ADDRESS_DIR | 0); /* Normal */ | 175 | lcd_write_command(LCD_CNTL_COLUMN_ADDRESS_DIR | 0); /* Normal */ |
177 | lcd_write_command(LCD_CNTL_COMMON_OUTPUT_STATUS | 1); /* Reverse dir */ | 176 | lcd_write_command(LCD_CNTL_COMMON_OUTPUT_STATUS | 1); /* Reverse dir */ |
178 | lcd_write_command(LCD_CNTL_REVERSE | 0); /* Reverse OFF */ | 177 | lcd_write_command(LCD_CNTL_REVERSE | 0); /* Reverse OFF */ |
179 | lcd_write_command(LCD_CNTL_ALL_LIGHTING | 0); /* Normal */ | 178 | lcd_write_command(LCD_CNTL_ALL_LIGHTING | 0); /* Normal */ |
180 | lcd_write_command(LCD_CNTL_OFF_MODE | 1); /* OFF -> VCC on drivers */ | ||
181 | lcd_write_command(LCD_CNTL_NLINE_ON_OFF | 1); /* N-line ON */ | ||
182 | |||
183 | lcd_write_command_ex(LCD_CNTL_DUTY_SET, 0x20, 1); | 179 | lcd_write_command_ex(LCD_CNTL_DUTY_SET, 0x20, 1); |
180 | lcd_write_command(LCD_CNTL_OFF_MODE | 1); /* OFF -> VCC on drivers */ | ||
184 | lcd_write_command_ex(LCD_CNTL_VOLTAGE_SELECT, 3, -1); | 181 | lcd_write_command_ex(LCD_CNTL_VOLTAGE_SELECT, 3, -1); |
185 | lcd_write_command_ex(LCD_CNTL_ELECTRONIC_VOLUME, 0x1c, -1); | 182 | lcd_write_command_ex(LCD_CNTL_ELECTRONIC_VOLUME, 0x1c, -1); |
186 | lcd_write_command_ex(LCD_CNTL_TEMP_GRADIENT_SELECT, 0, -1); | 183 | lcd_write_command_ex(LCD_CNTL_TEMP_GRADIENT_SELECT, 0, -1); |
184 | |||
187 | lcd_write_command_ex(LCD_CNTL_LINE_INVERT_DRIVE, 0x10, -1); | 185 | lcd_write_command_ex(LCD_CNTL_LINE_INVERT_DRIVE, 0x10, -1); |
186 | lcd_write_command(LCD_CNTL_NLINE_ON_OFF | 1); /* N-line ON */ | ||
187 | |||
188 | lcd_write_command_ex(LCD_CNTL_OSC_FREQUENCY, 3, -1); | 188 | lcd_write_command_ex(LCD_CNTL_OSC_FREQUENCY, 3, -1); |
189 | lcd_write_command(LCD_CNTL_OSC_ON_OFF | 1); /* Oscillator ON */ | 189 | lcd_write_command(LCD_CNTL_OSC_ON_OFF | 1); /* Oscillator ON */ |
190 | lcd_write_command_ex(LCD_CNTL_POWER_CONTROL, 0x17, -1); | ||
191 | 190 | ||
192 | sleep(1); | 191 | lcd_write_command_ex(LCD_CNTL_POWER_CONTROL, 0x16, -1); |
192 | sleep(HZ/10); /* 100 ms pause */ | ||
193 | lcd_write_command_ex(LCD_CNTL_POWER_CONTROL, 0x17, -1); | ||
193 | 194 | ||
194 | lcd_write_command_ex(LCD_CNTL_DISPLAY_START_LINE, 0, -1); | 195 | lcd_write_command_ex(LCD_CNTL_DISPLAY_START_LINE, 0, -1); |
195 | lcd_write_command_ex(LCD_CNTL_GRAY_SCALE_PATTERN, 0x42, -1); | 196 | lcd_write_command_ex(LCD_CNTL_GRAY_SCALE_PATTERN, 0x42, -1); |
@@ -198,6 +199,7 @@ void lcd_init(void) | |||
198 | 199 | ||
199 | lcd_clear_display(); | 200 | lcd_clear_display(); |
200 | lcd_update(); | 201 | lcd_update(); |
202 | lcd_write_command(LCD_CNTL_ON_OFF | 1); /* LCD ON */ | ||
201 | 203 | ||
202 | create_thread(scroll_thread, scroll_stack, | 204 | create_thread(scroll_thread, scroll_stack, |
203 | sizeof(scroll_stack), scroll_name); | 205 | sizeof(scroll_stack), scroll_name); |