|
@@ -10,6 +10,7 @@
|
|
* Change Logs:
|
|
* Change Logs:
|
|
* Date Author Notes
|
|
* Date Author Notes
|
|
* 2008-03-29 Yi.Qiu
|
|
* 2008-03-29 Yi.Qiu
|
|
|
|
+ * 2011-06-13 lgnq modified for FM3 easy kit
|
|
*/
|
|
*/
|
|
#ifndef __LCD_H__
|
|
#ifndef __LCD_H__
|
|
#define __LCD_H__
|
|
#define __LCD_H__
|
|
@@ -28,80 +29,80 @@ LCD_C86 PORT1.1
|
|
LCD_PS PORT1.0
|
|
LCD_PS PORT1.0
|
|
LCD_DATA[0..7] PORT5.[0..7]
|
|
LCD_DATA[0..7] PORT5.[0..7]
|
|
***********************************************/
|
|
***********************************************/
|
|
-#define LCD_CS (1UL << 7)
|
|
|
|
-#define LCD_CS_DDR (FM3_GPIO->DDR1)
|
|
|
|
-#define LCD_CS_PFR (FM3_GPIO->PFR1)
|
|
|
|
-#define LCD_CS_PDOR (FM3_GPIO->PDOR1)
|
|
|
|
-
|
|
|
|
-#define LCD_CD (1UL << 6)
|
|
|
|
-#define LCD_CD_DDR (FM3_GPIO->DDR1)
|
|
|
|
-#define LCD_CD_PFR (FM3_GPIO->PFR1)
|
|
|
|
-#define LCD_CD_PDOR (FM3_GPIO->PDOR1)
|
|
|
|
-
|
|
|
|
-#define LCD_PS (1UL << 0)
|
|
|
|
-#define LCD_PS_DDR (FM3_GPIO->DDR1)
|
|
|
|
-#define LCD_PS_PFR (FM3_GPIO->PFR1)
|
|
|
|
-#define LCD_PS_PDOR (FM3_GPIO->PDOR1)
|
|
|
|
-
|
|
|
|
-#define LCD_CLK (1UL << 6)
|
|
|
|
-#define LCD_CLK_DDR (FM3_GPIO->DDR5)
|
|
|
|
-#define LCD_CLK_PFR (FM3_GPIO->PFR5)
|
|
|
|
-#define LCD_CLK_PDOR (FM3_GPIO->PDOR5)
|
|
|
|
-
|
|
|
|
-#define LCD_DATA (1UL << 7)
|
|
|
|
-#define LCD_DATA_DDR (FM3_GPIO->DDR5)
|
|
|
|
-#define LCD_DATA_PFR (FM3_GPIO->PFR5)
|
|
|
|
-#define LCD_DATA_PDOR (FM3_GPIO->PDOR5)
|
|
|
|
|
|
+#define LCD_CS (1UL << 7)
|
|
|
|
+#define LCD_CS_DDR (FM3_GPIO->DDR1)
|
|
|
|
+#define LCD_CS_PFR (FM3_GPIO->PFR1)
|
|
|
|
+#define LCD_CS_PDOR (FM3_GPIO->PDOR1)
|
|
|
|
+
|
|
|
|
+#define LCD_CD (1UL << 6)
|
|
|
|
+#define LCD_CD_DDR (FM3_GPIO->DDR1)
|
|
|
|
+#define LCD_CD_PFR (FM3_GPIO->PFR1)
|
|
|
|
+#define LCD_CD_PDOR (FM3_GPIO->PDOR1)
|
|
|
|
+
|
|
|
|
+#define LCD_PS (1UL << 0)
|
|
|
|
+#define LCD_PS_DDR (FM3_GPIO->DDR1)
|
|
|
|
+#define LCD_PS_PFR (FM3_GPIO->PFR1)
|
|
|
|
+#define LCD_PS_PDOR (FM3_GPIO->PDOR1)
|
|
|
|
+
|
|
|
|
+#define LCD_CLK (1UL << 6)
|
|
|
|
+#define LCD_CLK_DDR (FM3_GPIO->DDR5)
|
|
|
|
+#define LCD_CLK_PFR (FM3_GPIO->PFR5)
|
|
|
|
+#define LCD_CLK_PDOR (FM3_GPIO->PDOR5)
|
|
|
|
+
|
|
|
|
+#define LCD_DATA (1UL << 7)
|
|
|
|
+#define LCD_DATA_DDR (FM3_GPIO->DDR5)
|
|
|
|
+#define LCD_DATA_PFR (FM3_GPIO->PFR5)
|
|
|
|
+#define LCD_DATA_PDOR (FM3_GPIO->PDOR5)
|
|
|
|
|
|
/* LCD driver for ZYMG12864C3 */
|
|
/* LCD driver for ZYMG12864C3 */
|
|
-#define LCD_WIDTH 128
|
|
|
|
-#define LCD_HEIGHT 64
|
|
|
|
|
|
+#define LCD_WIDTH 128
|
|
|
|
+#define LCD_HEIGHT 64
|
|
|
|
|
|
// Driver the LCD with Parallel or serial interface and the command/data control pin is gpio
|
|
// Driver the LCD with Parallel or serial interface and the command/data control pin is gpio
|
|
-#define LCD_CS_HIGH() LCD_CS_PDOR |= LCD_CS
|
|
|
|
-#define LCD_CS_LOW() LCD_CS_PDOR &= ~LCD_CS
|
|
|
|
|
|
+#define LCD_CS_HIGH() LCD_CS_PDOR |= LCD_CS
|
|
|
|
+#define LCD_CS_LOW() LCD_CS_PDOR &= ~LCD_CS
|
|
|
|
|
|
-#define LCD_CD_HIGH() LCD_CD_PDOR |= LCD_CD
|
|
|
|
-#define LCD_CD_LOW() LCD_CD_PDOR &= ~LCD_CD
|
|
|
|
|
|
+#define LCD_CD_HIGH() LCD_CD_PDOR |= LCD_CD
|
|
|
|
+#define LCD_CD_LOW() LCD_CD_PDOR &= ~LCD_CD
|
|
|
|
|
|
-#define LCD_PS_HIGH() LCD_PS_PDOR |= LCD_PS
|
|
|
|
-#define LCD_PS_LOW() LCD_PS_PDOR &= ~LCD_PS
|
|
|
|
|
|
+#define LCD_PS_HIGH() LCD_PS_PDOR |= LCD_PS
|
|
|
|
+#define LCD_PS_LOW() LCD_PS_PDOR &= ~LCD_PS
|
|
|
|
|
|
-#define LCD_CLK_HIGH() LCD_CLK_PDOR |= LCD_CLK
|
|
|
|
-#define LCD_CLK_LOW() LCD_CLK_PDOR &= ~LCD_CLK
|
|
|
|
|
|
+#define LCD_CLK_HIGH() LCD_CLK_PDOR |= LCD_CLK
|
|
|
|
+#define LCD_CLK_LOW() LCD_CLK_PDOR &= ~LCD_CLK
|
|
|
|
|
|
-#define LCD_DATA_HIGH() LCD_DATA_PDOR |= LCD_DATA
|
|
|
|
-#define LCD_DATA_LOW() LCD_DATA_PDOR &= ~LCD_DATA
|
|
|
|
|
|
+#define LCD_DATA_HIGH() LCD_DATA_PDOR |= LCD_DATA
|
|
|
|
+#define LCD_DATA_LOW() LCD_DATA_PDOR &= ~LCD_DATA
|
|
|
|
|
|
// define the arrtibute of ZYMG12864(LCM)
|
|
// define the arrtibute of ZYMG12864(LCM)
|
|
-#define GUI_LCM_XMAX 128 // defined the lcd's line-number is 128
|
|
|
|
-#define GUI_LCM_YMAX 64 // defined the lcd's column-number is 64
|
|
|
|
-#define GUI_LCM_PAGE 8 // defined the lcd's page-number is 8(GUI_LCM_YMAX/8)
|
|
|
|
|
|
+#define GUI_LCM_XMAX 128 // defined the lcd's line-number is 128
|
|
|
|
+#define GUI_LCM_YMAX 64 // defined the lcd's column-number is 64
|
|
|
|
+#define GUI_LCM_PAGE 8 // defined the lcd's page-number is 8(GUI_LCM_YMAX/8)
|
|
|
|
|
|
/* set LCD command */
|
|
/* set LCD command */
|
|
-#define Display_On 0xAF // A0,RD,WR:010
|
|
|
|
-#define Display_Off 0xAE // A0,RD,WR:010
|
|
|
|
-
|
|
|
|
-#define Set_Start_Line_0 0x40 // A0,RD,WR:010; line0~line63
|
|
|
|
-#define Set_Page_Addr_0 0xB0 // A0,RD,WR:010; addr0~addr8
|
|
|
|
-#define Set_ColH_Addr_0 0x10 // A0,RD,WR:010;
|
|
|
|
-#define Set_ColL_Addr_0 0x00 // A0,RD,WR:010; addr0~addr131
|
|
|
|
-
|
|
|
|
-#define Read_Status 0x-0 // A0,RD,WR:001; BUSY | ADC | ON/OFF | RESET | 0 0 0 0
|
|
|
|
-#define Status_Busy 0x80
|
|
|
|
-#define Status_ADC_Reverse 0x40 // column address 131-n : SEG n, else column address n : SEG n
|
|
|
|
-#define Status_Display_Off 0x20
|
|
|
|
-#define Status_Reset 0x80
|
|
|
|
-
|
|
|
|
-#define Write_Data 0x-- // A0,RD,WR:110
|
|
|
|
-#define Read_Date 0x-- // A0,RD,WR:101; spi mode is unavailable
|
|
|
|
-
|
|
|
|
-#define Set_ADC_Normal 0xA0 // A0,RD,WR:010
|
|
|
|
-#define Set_ADC_Reverse 0xA1 // A0,RD,WR:010
|
|
|
|
-#define Display_Normal 0xA6 // A0,RD,WR:010
|
|
|
|
-#define Display_Reverse 0xA7 // A0,RD,WR:010; reverse color
|
|
|
|
-#define Display_All_On 0xA5 // A0,RD,WR:010
|
|
|
|
-#define Display_All_Normal 0xA4 // A0,RD,WR:010
|
|
|
|
|
|
+#define DISPLAY_ON 0xAF // A0,RD,WR:010
|
|
|
|
+#define DISPLAY_OFF 0xAE // A0,RD,WR:010
|
|
|
|
+
|
|
|
|
+#define SET_START_LINE_0 0x40 // A0,RD,WR:010; line0~line63
|
|
|
|
+#define SET_PAGE_ADDR_0 0xB0 // A0,RD,WR:010; addr0~addr8
|
|
|
|
+#define SET_COLH_ADDR_0 0x10 // A0,RD,WR:010;
|
|
|
|
+#define SET_COLL_ADDR_0 0x00 // A0,RD,WR:010; addr0~addr131
|
|
|
|
+
|
|
|
|
+#define READ_STATUS 0x-0 // A0,RD,WR:001; BUSY | ADC | ON/OFF | RESET | 0 0 0 0
|
|
|
|
+#define STATUS_BUSY 0x80
|
|
|
|
+#define STATUS_ADC_REVERSE 0x40 // column address 131-n : SEG n, else column address n : SEG n
|
|
|
|
+#define STATUS_DISPLAY_OFF 0x20
|
|
|
|
+#define STATUS_RESET 0x80
|
|
|
|
+
|
|
|
|
+#define WRITE_DATA 0x-- // A0,RD,WR:110
|
|
|
|
+#define READ_DATE 0x-- // A0,RD,WR:101; spi mode is unavailable
|
|
|
|
+
|
|
|
|
+#define SET_ADC_NORMAL 0xA0 // A0,RD,WR:010
|
|
|
|
+#define SET_ADC_REVERSE 0xA1 // A0,RD,WR:010
|
|
|
|
+#define DISPLAY_NORMAL 0xA6 // A0,RD,WR:010
|
|
|
|
+#define DISPLAY_REVERSE 0xA7 // A0,RD,WR:010; reverse color
|
|
|
|
+#define DISPLAY_ALL_ON 0xA5 // A0,RD,WR:010
|
|
|
|
+#define DISPLAY_ALL_NORMAL 0xA4 // A0,RD,WR:010
|
|
|
|
|
|
/*************************************************************
|
|
/*************************************************************
|
|
* bias: 1/65duty | 1/49duty | 1/33duty | 1/55duty | 1/53duty *
|
|
* bias: 1/65duty | 1/49duty | 1/33duty | 1/55duty | 1/53duty *
|
|
@@ -110,12 +111,12 @@ LCD_DATA[0..7] PORT5.[0..7]
|
|
* A3: 1/7 bias | 1/6 bias | 1/5 bias | 1/6 bias | 1/6 bias *
|
|
* A3: 1/7 bias | 1/6 bias | 1/5 bias | 1/6 bias | 1/6 bias *
|
|
**************************************************************/
|
|
**************************************************************/
|
|
|
|
|
|
-#define Set_LCD_Bias_7 0xA3 // A0,RD,WR:010
|
|
|
|
-#define Set_LCD_Bias_9 0xA2 // A0,RD,WR:010
|
|
|
|
|
|
+#define SET_LCD_BIAS_7 0xA3 // A0,RD,WR:010
|
|
|
|
+#define SET_LCD_BIAS_9 0xA2 // A0,RD,WR:010
|
|
|
|
|
|
-#define RMW_Mode_Enable 0xE0 // A0,RD,WR:010; the column address locked when read command operating
|
|
|
|
-#define RMW_Mode_End 0xEE // A0,RD,WR:010; returns to the column address when RMW was entered.
|
|
|
|
-#define Reset_LCD 0xE2 // A0,RD,WR:010
|
|
|
|
|
|
+#define RMW_MODE_ENABLE 0xE0 // A0,RD,WR:010; the column address locked when read command operating
|
|
|
|
+#define RMW_MODE_END 0xEE // A0,RD,WR:010; returns to the column address when RMW was entered.
|
|
|
|
+#define RESET_LCD 0xE2 // A0,RD,WR:010
|
|
|
|
|
|
|
|
|
|
/**************************************************************************************
|
|
/**************************************************************************************
|
|
@@ -125,30 +126,30 @@ LCD_DATA[0..7] PORT5.[0..7]
|
|
* C8: Reverse | COM63:COM0 | COM47:COM0 | COM31:COM0 | COM53:COM0 | COM51:COM0 *
|
|
* C8: Reverse | COM63:COM0 | COM47:COM0 | COM31:COM0 | COM53:COM0 | COM51:COM0 *
|
|
***************************************************************************************/
|
|
***************************************************************************************/
|
|
|
|
|
|
-#define COM_Scan_Dir_Normal 0xC0 // A0,RD,WR:010
|
|
|
|
-#define COM_Scan_Dir_Reverse 0xC8 // A0,RD,WR:010
|
|
|
|
|
|
+#define COM_SCAN_DIR_NORMAL 0xC0 // A0,RD,WR:010
|
|
|
|
+#define COM_SCAN_DIR_REVERSE 0xC8 // A0,RD,WR:010
|
|
|
|
|
|
// 0 0 1 0 1 | Booster On | Regulator On | Follower On
|
|
// 0 0 1 0 1 | Booster On | Regulator On | Follower On
|
|
-#define Power_Booster_On 0x2C // A0,RD,WR:010
|
|
|
|
-#define Power_Regulator_On 0x2E // A0,RD,WR:010
|
|
|
|
-#define Power_Follower_On 0x2F // A0,RD,WR:010
|
|
|
|
|
|
+#define POWER_BOOSTER_ON 0x2C // A0,RD,WR:010
|
|
|
|
+#define POWER_REGULATOR_ON 0x2E // A0,RD,WR:010
|
|
|
|
+#define POWER_FOLLOWER_ON 0x2F // A0,RD,WR:010
|
|
|
|
|
|
-#define Set_Resistor_Ratio 0x20 // A0,RD,WR:010; 20~27:small~large
|
|
|
|
|
|
+#define SET_RESISTOR_RATIO 0x20 // A0,RD,WR:010; 20~27:small~large
|
|
|
|
|
|
-#define Set_ElecVol_Mode 0x81 // A0,RD,WR:010; double byte command
|
|
|
|
-#define Set_ElecVol_Reg 0x20 // A0,RD,WR:010; the electronic volume(64 voltage levels:00~3F) function is not used.
|
|
|
|
|
|
+#define SET_ELECVOL_MODE 0x81 // A0,RD,WR:010; double byte command
|
|
|
|
+#define SET_ELECVOL_REG 0x20 // A0,RD,WR:010; the electronic volume(64 voltage levels:00~3F) function is not used.
|
|
|
|
|
|
-#define Sleep_Mode_Enable 0xAC // A0,RD,WR:010; double byte command, preceding command
|
|
|
|
-#define Sleep_Mode_Disable 0xAD // A0,RD,WR:010; preceding command
|
|
|
|
-#define Sleep_Mode_Deliver 0x00 // A0,RD,WR:010; following command
|
|
|
|
|
|
+#define SLEEP_MODE_ENABLE 0xAC // A0,RD,WR:010; double byte command, preceding command
|
|
|
|
+#define SLEEP_MODE_DISABLE 0xAD // A0,RD,WR:010; preceding command
|
|
|
|
+#define SLEEP_MODE_DELIVER 0x00 // A0,RD,WR:010; following command
|
|
|
|
|
|
-#define Boost_Ratio_Set 0xF8 // A0,RD,WR:010; double byte command, preceding command
|
|
|
|
-#define Boost_Ratio_234 0x00 // A0,RD,WR:010; following command
|
|
|
|
-#define Boost_Ratio_5 0x01 // A0,RD,WR:010; following command
|
|
|
|
-#define Boost_Ratio_6 0x03 // A0,RD,WR:010; following command
|
|
|
|
|
|
+#define BOOST_RATIO_SET 0xF8 // A0,RD,WR:010; double byte command, preceding command
|
|
|
|
+#define BOOST_RATIO_234 0x00 // A0,RD,WR:010; following command
|
|
|
|
+#define BOOST_RATIO_5 0x01 // A0,RD,WR:010; following command
|
|
|
|
+#define BOOST_RATIO_6 0x03 // A0,RD,WR:010; following command
|
|
|
|
|
|
-#define Command_Nop 0xE3 // A0,RD,WR:010
|
|
|
|
-#define Command_IC_Test 0xFC // A0,RD,WR:010; don't use
|
|
|
|
|
|
+#define COMMAND_NOP 0xE3 // A0,RD,WR:010
|
|
|
|
+#define COMMAND_IC_TEST 0xFC // A0,RD,WR:010; don't use
|
|
|
|
|
|
#define RT_DEVICE_CTRL_LCD_GET_WIDTH 0
|
|
#define RT_DEVICE_CTRL_LCD_GET_WIDTH 0
|
|
#define RT_DEVICE_CTRL_LCD_GET_HEIGHT 1
|
|
#define RT_DEVICE_CTRL_LCD_GET_HEIGHT 1
|
|
@@ -173,11 +174,11 @@ enum
|
|
|
|
|
|
struct lcd_msg
|
|
struct lcd_msg
|
|
{
|
|
{
|
|
- rt_uint8_t type;
|
|
|
|
- rt_uint16_t adc_value;
|
|
|
|
- rt_uint8_t key;
|
|
|
|
- rt_uint16_t major;
|
|
|
|
- rt_uint16_t minor;
|
|
|
|
|
|
+ rt_uint8_t type;
|
|
|
|
+ rt_uint16_t adc_value;
|
|
|
|
+ rt_uint8_t key;
|
|
|
|
+ rt_uint16_t major;
|
|
|
|
+ rt_uint16_t minor;
|
|
};
|
|
};
|
|
|
|
|
|
extern rt_uint32_t x;
|
|
extern rt_uint32_t x;
|