BOOTLOADER
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
lcd.h
Go to the documentation of this file.
1 #ifndef LCD_H
2 #define LCD_H
3 
4 #define LCD_HORIZONTAL_SIZE 640
5 #define LCD_VERTICAL_SIZE 480
6 
7 #define LCD_CLKVAL_0 0x00000100 // 640480
8 #define LCD_MMODE_0 0x00000000 // rate of VM toggle is each frame
9 #define LCD_MMODE_1 0x00000080 // rate of VM toggle is defined by MVAL
10 #define LCD_PNRMODE_0 0x00000000 // 4 bit dstn
11 #define LCD_PNRMODE_1 0x00000020 // 4 bit sstn
12 #define LCD_PNRMODE_2 0x00000040 // 8 bit sstn
13 #define LCD_PNRMODE_3 0x00000060 // tft
14 #define LCD_BPPMODE_0 0x00000000 // 1 bpp stn, monochrome mode
15 #define LCD_BPPMODE_1 0x00000002 // 2 bpp stn, 4 level gray mode
16 #define LCD_BPPMODE_2 0x00000004 // 4 bpp stn, 16 level gray mode
17 #define LCD_BPPMODE_3 0x00000006 // 8 bpp stn, color mode
18 #define LCD_BPPMODE_4 0x00000008 // 12 bpp stn, color mode
19 #define LCD_BPPMODE_5 0x00000010 // 1 bpp tft
20 #define LCD_BPPMODE_6 0x00000012 // 2 bpp tft
21 #define LCD_BPPMODE_7 0x00000014 // 4 bpp tft
22 #define LCD_BPPMODE_8 0x00000016 // 8 bpp tft
23 #define LCD_BPPMODE_9 0x00000018 // 16 bpp tft
24 #define LCD_BPPMODE_10 0x0000001a // 24 bpp tft
25 #define LCD_ENVID_ENABLE 0x00000001 // video out enable
26 #define LCD_ENVID_DISABLE 0x00000000 // video out disale
27 
28 
29 #define LCD_VBPD 0x1f000000 // 640480
30 #define LCD_LINEVAL ((LCD_VERTICAL_SIZE-1)<<14) // 640480
31 #define LCD_VFPD 0x00000280 // 640480
32 #define LCD_VSPW 0x00000001 // 640480
33 
34 #define LCD_HBPD (39<<19) // 640480
35 #define LCD_HOZVAL ((LCD_HORIZONTAL_SIZE-1)<<8) // 640480
36 #define LCD_HFPD 0x00000017 // 640480
37 
38 #define LCD_MVAL (13<<8)
39 #define LCD_HSPW (95)
40 
41 #define LCD_BPP24BL_0 0x00000000 // LSB valid
42 #define LCD_BPP24BL_1 (1<<12) // MSB valid
43 #define LCD_FRM565_0 0x00000000 // RGBI5551 format
44 #define LCD_FRM565_1 (1<<11) // RGB565 format
45 #define LCD_INVVCLK_0 0x00000000 // fetch at falling edge
46 #define LCD_INVVCLK_1 (1<10) // fetch at rising edge
47 #define LCD_INVVLINE_0 0x00000000 // normal
48 #define LCD_INVVLINE_1 (1<9) // inverted
49 #define LCD_INVVFRAME_0 0x00000000 // normal
50 #define LCD_INVVFRAME_1 (1<8) // inverted
51 #define LCD_INVVD_0 0x00000000 // normal
52 #define LCD_INVVD_1 (1<7) // vd inverted
53 #define LCD_INVVDEN_0 0x00000000 // normal
54 #define LCD_INVVDEN_1 (1<6) // vd inverted
55 #define LCD_INVPWREN_0 0x00000000 // normal
56 #define LCD_INVPWREN_1 (1<5) // vd inverted
57 #define LCD_INVLEDN_0 0x00000000 // normal
58 #define LCD_INVLEDN_1 (1<4) // vd inverted
59 #define LCD_PWREN_0 0x00000000 // normal
60 #define LCD_PWREN_1 (1<3) // vd inverted
61 #define LCD_ENLEND_0 0x00000000 // normal
62 #define LCD_ENLEND_1 (1<2) // vd inverted
63 #define LCD_BSWP_0 0x00000000 // normal
64 #define LCD_BSWP_1 (1<1) // vd inverted
65 #define LCD_HWSWP_0 0x00000000 // normal
66 #define LCD_HWSWP_1 (1) // vd inverted
67 
68 
69 
70 
71 #define LCD_HFPD_0 23
72 #define LCD_HSPW_0 95
73 #define LCD_HBPD_0 39
74 #define LCD_VFPD_0 10
75 #define LCD_VSPW_0 1
76 #define LCD_VBPD_0 31
77 
78 typedef struct{
79  volatile INT32U LCDCON1; // 0x00
80  volatile INT32U LCDCON2; // 0x04
81  volatile INT32U LCDCON3; // 0x08
82  volatile INT32U LCDCON4; // 0x0c
83  volatile INT32U LCDCON5; // 0x10
84  volatile INT32U LCDSADDR1; // 0x14
85  volatile INT32U LCDSADDR2; // 0x18
86  volatile INT32U LCDSADDR3; // 0x1c
87  volatile INT32U REDLUT; // 0x20
88  volatile INT32U GREENLUT; // 0x24
89  volatile INT32U BLUELUT; // 0x28
90  volatile INT32U RESERVED0; // 0x2c
91  volatile INT32U RESERVED1; // 0x30
92  volatile INT32U RESERVED2; // 0x34
93  volatile INT32U RESERVED3; // 0x38
94  volatile INT32U RESERVED4; // 0x3c
95  volatile INT32U RESERVED5; // 0x40
96  volatile INT32U RESERVED6; // 0x44
97  volatile INT32U RESERVED7; // 0x48
98  volatile INT32U DITHMODE; // 0x4c
99  volatile INT32U TPAL; // 0x50
100  volatile INT32U LCDINTPND; // 0x54
101  volatile INT32U LCDSRCPND; // 0x58
102  volatile INT32U LCDINTMSK; // 0x5c
103  volatile INT32U LPCSEL; // 0x60
104 }LCD_REGISTER;
105 
106 typedef struct{
113 }LCD_CONTROL;
114 
115 extern LCD_CONTROL LcdControl;
116 
117 extern void F_LcdInit(void);
118 extern void F_LcdSvc(void);
119 extern INT8U F_LcdInUseCheck(void);
120 extern INT8U F_LcdAllocate(INT16U UserId);
121 extern INT8U F_LcdRelease(INT16U UserId);
122 extern INT8U F_LcdEnable(INT16U UserId);
123 extern INT8U F_LcdDisable(INT16U UserId);
124 extern INT8U F_LcdLcdcon1Set(INT16U UserId,INT32U Lcdcon1);
125 extern INT8U F_LcdLcdcon2Set(INT16U UserId,INT32U Lcdcon2);
126 extern INT8U F_LcdLcdcon3Set(INT16U UserId,INT32U Lcdcon3);
127 extern INT8U F_LcdLcdcon4Set(INT16U UserId,INT32U Lcdcon4);
128 extern INT8U F_LcdLcdcon5Set(INT16U UserId,INT32U Lcdcon5);
129 extern INT8U F_LcdLcdsaddr1Set(INT16U UserId,INT32U Lcdsaddr1);
130 extern INT8U F_LcdLcdsaddr2Set(INT16U UserId,INT32U Lcdsaddr2);
131 extern INT8U F_LcdLcdsaddr3Set(INT16U UserId,INT32U Lcdsaddr3);
132 extern INT8U F_LcdRedlutSet(INT16U UserId,INT32U Redlut);
133 extern INT8U F_LcdGreenlutSet(INT16U UserId,INT32U Greenlut);
134 extern INT8U F_LcdBluelutSet(INT16U UserId,INT32U Bluelut);
135 extern INT8U F_LcdDithmodeSet(INT16U UserId,INT32U Dithmode);
136 extern INT8U F_LcdTpalSet(INT16U UserId,INT32U Tpal);
137 extern INT8U F_LcdLcdintpndSet(INT16U UserId,INT32U Lcdintpnd);
138 extern INT8U F_LcdLcdsrcpndSet(INT16U UserId,INT32U Lcdsrcpnd);
139 extern INT8U F_LcdLcdintmskSet(INT16U UserId,INT32U Lcdintmsk);
140 extern INT8U F_LcdLpcselSet(INT16U UserId,INT32U Lpcsel);
141 
142 #endif