summaryrefslogtreecommitdiff
path: root/bsp/swm320-lq100/Libraries/SWM320_StdPeriph_Driver/SWM320_lcd.h
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__