blob: 0b9d9b53c36f25ccf7b7c7763631b94c6771467a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
#ifndef __SWM320_LCD_H__
#define __SWM320_LCD_H__
typedef struct
{
uint8_t Interface; //LCD���ӿڣ�LCD_INTERFACE_RGB��LCD_INTERFACE_I80��LCD_INTERFACE_M68
/* RGBͬ���ӿڲ��� */
uint8_t Dir; //LCD_DIR_LANDSCAPE ���� LCD_DIR_PORTRAIT ����
uint16_t HnPixel; //ˮƽ�������ظ��������ȡֵ1024
uint16_t VnPixel; //��ֱ�������ظ��������ȡֵ 768
uint8_t Hfp; //horizonal front porch�����ȡֵ32
uint8_t Hbp; //horizonal back porch�� ���ȡֵ128
uint8_t Vfp; //vertical front porch�� ���ȡֵ8
uint8_t Vbp; //vertical back porch�� ���ȡֵ32
uint8_t ClkDiv; //ϵͳʱ�Ӿ�ClkDiv��Ƶ�����DOCCLK��0 2��Ƶ 1 4��Ƶ 2 6��Ƶ ... ... 31 64��Ƶ
uint8_t SamplEdge; //��Ļ��DOTCLK���ĸ����ز������ݣ�LCD_SAMPLEDGE_RISE��LCD_SAMPLEDGE_FALL
uint8_t ClkAlways; //1 һֱ���DOTCLK 0 ֻ�ڴ�������ʱ���DOTCLK
uint8_t HsyncWidth; //HSYNC�͵�ƽ�������ٸ�DOTCLK��ȡֵ��LCD_HSYNC_1DOTCLK��LCD_HSYNC_2DOTCLK��LCD_HSYNC_3DOTCLK��LCD_HSYNC_4DOTCLK
/* MPU��8080���ӿڲ��� */
uint8_t T_CSf_WRf; //CSn�½��ص�WRn�½��ص�ʱ�䣬ȡֵ0--3
uint8_t T_WRnHold; //WRn�͵�ƽ�ij���ʱ�䣬 ȡֵ0--7
uint8_t T_WRr_CSr; //WRn�����ص�CSn�����ص�ʱ�䣬ȡֵ0--3
uint8_t T_CSr_CSf; //CSn�����ص�CSn�½��ص�ʱ�䣬ȡֵ0--7
uint8_t IntEOTEn; //End of Transter��������ɣ��ж�ʹ��
} LCD_InitStructure;
#define LCD_INTERFACE_RGB 0
#define LCD_INTERFACE_I80 1
#define LCD_INTERFACE_M68 2
#define LCD_DIR_LANDSCAPE 0 //����
#define LCD_DIR_PORTRAIT 1 //����
#define LCD_SAMPLEDGE_RISE 0 //��Ļ��DOTCLK�������ز�������
#define LCD_SAMPLEDGE_FALL 1 //��Ļ��DOTCLK���½��ز�������
#define LCD_HSYNC_1DOTCLK 0 //1��DOTCLK
#define LCD_HSYNC_2DOTCLK 1
#define LCD_HSYNC_3DOTCLK 2
#define LCD_HSYNC_4DOTCLK 3
#define LCD_CLKDIV_2 0
#define LCD_CLKDIV_4 1
#define LCD_CLKDIV_6 2
#define LCD_CLKDIV_8 3
#define LCD_CLKDIV_10 4
#define LCD_CLKDIV_12 5
#define LCD_CLKDIV_14 6
#define LCD_CLKDIV_16 7
#define LCD_CLKDIV_18 8
#define LCD_CLKDIV_20 9
#define LCD_CLKDIV_22 10
#define LCD_CLKDIV_24 11
#define LCD_CLKDIV_26 12
#define LCD_CLKDIV_28 13
#define LCD_CLKDIV_30 14
#define LCD_CLKDIV_32 15
#define LCD_CLKDIV_34 16
#define LCD_CLKDIV_36 17
#define LCD_CLKDIV_38 18
#define LCD_CLKDIV_40 19
#define LCD_CLKDIV_42 20
#define LCD_CLKDIV_44 21
#define LCD_CLKDIV_46 22
#define LCD_CLKDIV_48 23
#define LCD_CLKDIV_50 24
#define LCD_CLKDIV_52 25
#define LCD_CLKDIV_54 26
#define LCD_CLKDIV_56 27
#define LCD_CLKDIV_58 28
#define LCD_CLKDIV_60 29
#define LCD_CLKDIV_62 30
#define LCD_CLKDIV_64 31
void LCD_Init(LCD_TypeDef *LCDx, LCD_InitStructure *initStruct);
void LCD_Start(LCD_TypeDef *LCDx);
uint32_t LCD_IsBusy(LCD_TypeDef *LCDx);
void LCD_I80_WriteReg(LCD_TypeDef *LCDx, uint16_t reg, uint16_t val[], uint16_t cnt);
void LCD_I80_WriteOneReg(LCD_TypeDef *LCDx, uint16_t reg, uint16_t val);
void LCD_I80_WriteData(LCD_TypeDef *LCDx, uint16_t data[], uint16_t cnt);
void LCD_I80_WriteOneData(LCD_TypeDef *LCDx, uint16_t val);
void LCD_INTEn(LCD_TypeDef *LCDx);
void LCD_INTDis(LCD_TypeDef *LCDx);
void LCD_INTClr(LCD_TypeDef *LCDx);
uint32_t LCD_INTStat(LCD_TypeDef *LCDx);
#endif //__SWM320_LCD_H__
|