comparison src/cs/drivers/drv_app/r2d/lcds/E_Sample/r2d_task_i.c @ 0:4e78acac3d88

src/{condat,cs,gpf,nucleus}: import from Selenite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:23:26 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4e78acac3d88
1 #include "r2d/lcds/e_sample/r2d_tfd_lcd.h"
2 #include "rvm/rvm_use_id_list.h"
3 #include "r2d/lcds/e_sample/lcd_if.h"
4
5 UINT16 tab_temp[264+1];
6
7 void r2d_lcd_power_on(void)
8 {
9 }
10
11 void r2d_lcd_power_off(void)
12 {
13 }
14
15 void r2d_refresh(void)
16 {
17 UINT16 i,j;
18
19 #ifndef _WINDOWS
20
21 UINT32 v;
22 UINT16 r,g,b; // Red, Green, Blue
23 UINT16 ind;
24 UINT16 command;
25 UINT32 *p;
26
27
28
29 p=r2d_g_framebuffer->p_memory_words;
30
31 #if (R2D_REFRESH == R2D_HORIZONTAL)
32 rvf_send_trace("R2D REFRESH",strlen("R2D REFRESH"), NULL_PARAM,
33 RV_TRACE_LEVEL_DEBUG_HIGH, R2D_USE_ID );
34
35 command = LCD_DISNOR;
36 f_lcd_if_poll_write(C_LCD_IF_CS0, &(command), 1, C_LCD_IF_INSTRUCTION);
37
38 command = LCD_RAMWR;
39 f_lcd_if_poll_write(C_LCD_IF_CS0, &(command), 1, C_LCD_IF_INSTRUCTION);
40
41
42 for(j=0;j<220;j++)
43 {
44 ind=0;
45 for (i=0;i<88;i++) // 2 pixels managed in the loop
46 {
47
48 v= *p++;
49 v=~v;
50
51 r=(UINT16)(v&0x0000F800); // 5 bits
52 r=r>>8;
53
54 g=(UINT16)(v&0x000007E0); // 6 bits
55 g=g<<5;
56
57 tab_temp[ind++]= (r|g);
58
59 b=(UINT16)(v&0x0000001F); // 5 bits
60 b=b<<3;
61
62
63 v=v>>16;
64
65 r=(UINT16)(v&0x0000F800); // 5 bits
66
67 tab_temp[ind++]= (b | r);
68
69
70 g=(UINT16)(v&0x000007E0); // 6 bits
71 g=g>>3;
72
73 b=(UINT16)(v&0x0000001F); // 5 bits
74 b=b<<11;
75
76 tab_temp[ind++]= (b | g);
77
78 }
79 p++;
80
81 f_lcd_if_poll_write(C_LCD_IF_CS0, &(tab_temp[0]), 264, C_LCD_IF_DISPLAY);
82 }
83
84 #endif
85 #endif
86
87
88 }