Nios - TFT-LCD(ILI9320控制器)
在Nios下驱动9320的TFT屏,具体的讲解参见:http://www.cnblogs.com/yuphone/category/276816.html
在 main.c 中只是程序的调用,不会做其他的事。
在 ili932x.c 里包含了一些最重要的函数,比如 ili_WrData(u16 ch), ili_WrCmd(u16 ch), ili_WrReg(u16 address,u16 data)...这些都是程序的基石。
1 //Write Data
2 void ili_WrData(u16 ch)
3 {
4 ili_RS = 1; //data
5 ili_nCS = 0;
6 ili_nRD = 1;
7 ili_DB->DATA = ch;
8 ili_nWR = 0;
9 // ili_DelayMs(10);
10 ili_nWR = 1;
11 ili_nCS = 1;
12 }
13
14 //
15 void ili_WrCmd(u16 ch)
16 {
17 ili_RS = 0; //commad
18 ili_nCS = 0;
19 ili_nRD = 1;
20 ili_DB->DATA = ch;
21 ili_nWR = 0;
22 // ili_DelayMs(10);
23 ili_nWR = 1;
24 ili_nCS = 1;
25 }
26
27 //
28 void ili_WrReg(u16 address,u16 data)
29 {
30 ili_WrCmd(address);
31 ili_WrData(data);
32 }
33
34 // 延时ms
35 void ili_DelayMs(u32 n)
36 {
37 usleep(n*1000);
38 }
39
40 // ILI93525初始化
41 void ili_Initial(void)
42 {
43 // 硬件复位
44 ili_nRST=1;
45 ili_DelayMs(10);
46 ili_nRST=0;
47 ili_DelayMs(10);
48 ili_nRST=1;
49 ili_DelayMs(100);
50
51 //
52 ili_WrReg(0x00,0x0000);
53 ili_WrReg(0x07,0x0001);//Display Control 1
54 ili_WrReg(0x08,0x0405);//Display Control 2 0808
55 ili_WrReg(0x30,0x0707);
56 ili_WrReg(0x31,0x0407);
57 ili_WrReg(0x32,0x0203);
58 ili_WrReg(0x33,0x0303);
59 ili_WrReg(0x34,0x0303);
60 ili_WrReg(0x35,0x0202);
在 ili932x.h 文件中包含了 ili932x.c 中要用到的一些宏定义和函数声明,ili932x.h 和 ili932x.c 是紧密联系的。
在 my_types.h 中都是用 typedef 定义的一些数据类型,以便在写程序时方便使用。
在 my_regs.h 中把各个模块要用的引脚和 system.h 文件中生成的引脚地址联系起来,以便操作。用的最多的就是强制类型转换。