diff options
author | Jens Arnold <amiconn@rockbox.org> | 2007-03-18 17:58:49 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2007-03-18 17:58:49 +0000 |
commit | cb1c9e447ef03ecc7171b512a6aa5754e1e8dd61 (patch) | |
tree | d688c8160f70b7a0ce6579a281fefe9fef769c61 /firmware/drivers | |
parent | f1bf798b8aa8af2b366060aa6fee81beafdaf3bb (diff) | |
download | rockbox-cb1c9e447ef03ecc7171b512a6aa5754e1e8dd61.tar.gz rockbox-cb1c9e447ef03ecc7171b512a6aa5754e1e8dd61.zip |
Archos player: Introduce lcd_write_command_e (only one data byte) in the lcd driver, for cleaner C code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12835 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers')
-rw-r--r-- | firmware/drivers/lcd-player.c | 30 |
1 files changed, 8 insertions, 22 deletions
diff --git a/firmware/drivers/lcd-player.c b/firmware/drivers/lcd-player.c index c863c9f188..dd99246611 100644 --- a/firmware/drivers/lcd-player.c +++ b/firmware/drivers/lcd-player.c | |||
@@ -106,8 +106,6 @@ unsigned short buffer_lcd_mirror[11][2]; | |||
106 | 106 | ||
107 | #ifdef SIMULATOR | 107 | #ifdef SIMULATOR |
108 | unsigned char hardware_buffer_lcd[11][2]; | 108 | unsigned char hardware_buffer_lcd[11][2]; |
109 | #else | ||
110 | static unsigned char lcd_data_byte; /* global write buffer */ | ||
111 | #endif | 109 | #endif |
112 | 110 | ||
113 | #define NO_CHAR -1 | 111 | #define NO_CHAR -1 |
@@ -133,8 +131,7 @@ static void lcd_free_pat(int map_ch) | |||
133 | #ifdef SIMULATOR | 131 | #ifdef SIMULATOR |
134 | hardware_buffer_lcd[x][y]=substitute_char; | 132 | hardware_buffer_lcd[x][y]=substitute_char; |
135 | #else | 133 | #else |
136 | lcd_write_command(LCD_CURSOR(x, y)); | 134 | lcd_write_command_e(LCD_CURSOR(x, y), substitute_char); |
137 | lcd_write_data(&substitute_char, 1); | ||
138 | #endif | 135 | #endif |
139 | } | 136 | } |
140 | } | 137 | } |
@@ -231,8 +228,7 @@ void xlcd_update(void) | |||
231 | #ifdef SIMULATOR | 228 | #ifdef SIMULATOR |
232 | hardware_buffer_lcd[x][y]=hw_ch; | 229 | hardware_buffer_lcd[x][y]=hw_ch; |
233 | #else | 230 | #else |
234 | lcd_write_command(LCD_CURSOR(x,y)); | 231 | lcd_write_command_e(LCD_CURSOR(x,y), hw_ch); |
235 | lcd_write_data(&hw_ch, 1); | ||
236 | #endif | 232 | #endif |
237 | } | 233 | } |
238 | } | 234 | } |
@@ -265,9 +261,7 @@ bool lcdx_putc(int x, int y, unsigned short ch) | |||
265 | #ifdef SIMULATOR | 261 | #ifdef SIMULATOR |
266 | hardware_buffer_lcd[x][y]=lcd_char; | 262 | hardware_buffer_lcd[x][y]=lcd_char; |
267 | #else | 263 | #else |
268 | lcd_data_byte = (unsigned char) lcd_char; | 264 | lcd_write_command_e(LCD_CURSOR(x, y), lcd_char); |
269 | lcd_write_command(LCD_CURSOR(x, y)); | ||
270 | lcd_write_data(&lcd_data_byte, 1); | ||
271 | #endif | 265 | #endif |
272 | return false; | 266 | return false; |
273 | } | 267 | } |
@@ -450,15 +444,13 @@ void lcd_icon(int icon, bool enable) | |||
450 | 444 | ||
451 | pos = icon_pos[icon]; | 445 | pos = icon_pos[icon]; |
452 | mask = icon_mask[icon]; | 446 | mask = icon_mask[icon]; |
453 | 447 | ||
454 | lcd_write_command(LCD_ICON(pos)); | ||
455 | |||
456 | if(enable) | 448 | if(enable) |
457 | icon_mirror[pos] |= mask; | 449 | icon_mirror[pos] |= mask; |
458 | else | 450 | else |
459 | icon_mirror[pos] &= ~mask; | 451 | icon_mirror[pos] &= ~mask; |
460 | 452 | ||
461 | lcd_write_data(&icon_mirror[pos], 1); | 453 | lcd_write_command_e(LCD_ICON(pos), icon_mirror[pos]); |
462 | } | 454 | } |
463 | 455 | ||
464 | int lcd_default_contrast(void) | 456 | int lcd_default_contrast(void) |
@@ -468,9 +460,7 @@ int lcd_default_contrast(void) | |||
468 | 460 | ||
469 | void lcd_set_contrast(int val) | 461 | void lcd_set_contrast(int val) |
470 | { | 462 | { |
471 | lcd_data_byte = (unsigned char) (31 - val); | 463 | lcd_write_command_e(lcd_contrast_set, 31 - val); |
472 | lcd_write_command(lcd_contrast_set); | ||
473 | lcd_write_data(&lcd_data_byte, 1); | ||
474 | } | 464 | } |
475 | #endif /* SIMULATOR */ | 465 | #endif /* SIMULATOR */ |
476 | 466 | ||
@@ -500,9 +490,7 @@ void lcd_init (void) | |||
500 | or_b(0x0f, &PBDRL); /* ... and high */ | 490 | or_b(0x0f, &PBDRL); /* ... and high */ |
501 | 491 | ||
502 | lcd_write_command(NEW_LCD_FUNCTION_SET + 1); /* CGRAM selected */ | 492 | lcd_write_command(NEW_LCD_FUNCTION_SET + 1); /* CGRAM selected */ |
503 | lcd_write_command(NEW_LCD_CONTRAST_SET); | 493 | lcd_write_command_e(NEW_LCD_CONTRAST_SET, 0x08); |
504 | lcd_data_byte = 0x08; | ||
505 | lcd_write_data(&lcd_data_byte, 1); | ||
506 | lcd_write_command(NEW_LCD_POWER_SAVE_MODE_OSC_CONTROL_SET + 2); | 494 | lcd_write_command(NEW_LCD_POWER_SAVE_MODE_OSC_CONTROL_SET + 2); |
507 | /* oscillator on */ | 495 | /* oscillator on */ |
508 | lcd_write_command(NEW_LCD_POWER_CONTROL_REGISTER_SET + 7); | 496 | lcd_write_command(NEW_LCD_POWER_CONTROL_REGISTER_SET + 7); |
@@ -599,9 +587,7 @@ void lcd_init (void) | |||
599 | for (i=0; i<300000; i++) asm volatile ("nop"); /* wait 150 ms */ | 587 | for (i=0; i<300000; i++) asm volatile ("nop"); /* wait 150 ms */ |
600 | 588 | ||
601 | lcd_write_command(0x31); | 589 | lcd_write_command(0x31); |
602 | lcd_write_command(0xa8); /* Set contrast control */ | 590 | lcd_write_command_e(0xa8, 0); /* Set contrast control */ |
603 | lcd_data_byte = 0; | ||
604 | lcd_write_data(&lcd_data_byte, 1); /* 0 */ | ||
605 | } | 591 | } |
606 | #endif | 592 | #endif |
607 | #endif /* !SIMULATOR */ | 593 | #endif /* !SIMULATOR */ |