📄 lcd_lcm_if.c
字号:
case SUB_LCD:
SubLCD->GetSize(lcd_width, lcd_height);
break;
#endif /* DUAL_LCD */
default:
ASSERT(0);
break;
}
} /* lcd_get_size() */
/*************************************************************************
* FUNCTION
* lcd_get_parameter
*
* DESCRIPTION
* This function returns specified parameter of LCM
*
* PARAMETERS
* lcd_id : selection MAIN_LCD or SUB_LCD
* type : which parameter will be returned (bias, contrast, linerate or
* temperature compensation)
*
* RETURNS
* the value of the specified parameter of LCM
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint8 lcd_get_parameter(kal_uint8 lcd_id,lcd_func_type type)
{
kal_uint8 return_value=0;
switch (lcd_id)
{
case MAIN_LCD:
return_value=MainLCD->get_param_number(type);
break;
#ifdef DUAL_LCD
case SUB_LCD:
return_value=SubLCD->get_param_number(type);
break;
#endif /* DUAL_LCD */
default:
ASSERT(0);
break;
}
return return_value;
} /* lcd_get_parameter() */
/*************************************************************************
* FUNCTION
* lcd_screen_on
*
* DESCRIPTION
* This function turns LCM screen on/off
*
* PARAMETERS
* lcd_id : selection MAIN_LCD or SUB_LCD
* on : screen on(KAL_TRUE)/off(KAL_FALSE) LCM
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void lcd_screen_on(kal_uint8 lcd_id, kal_bool on)
{
lcd_power_up();
switch (lcd_id)
{
case MAIN_LCD:
#if (defined(MT6217)||defined(MT6218B)||defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
DRV_WriteReg32(LCD_ROI_CMD_ADDR_REG,MAIN_LCD_CMD_ADDR);
DRV_WriteReg32(LCD_ROI_DATA_ADDR_REG,MAIN_LCD_DATA_ADDR);
#endif /* MT6218B, MT6219 */
MainLCD->SCREENON(on);
break;
#ifdef DUAL_LCD
case SUB_LCD:
#if (defined(MT6217)||defined(MT6218B)||defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
DRV_WriteReg32(LCD_ROI_CMD_ADDR_REG,SUB_LCD_CMD_ADDR);
DRV_WriteReg32(LCD_ROI_DATA_ADDR_REG,SUB_LCD_DATA_ADDR);
#endif /* MT6218B, MT6219 */
SubLCD->SCREENON(on);
break;
#endif /* DUAL_LCD */
default:
ASSERT(0);
break;
}
lcd_power_down();
} /* lcd_screen_on() */
/*************************************************************************
* FUNCTION
* lcd_power_on
*
* DESCRIPTION
* This function turns LCM power on/off
*
* PARAMETERS
* lcd_id : selection MAIN_LCD or SUB_LCD
* on : power on(KAL_TRUE)/off(KAL_FALSE) LCM
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void lcd_power_on(kal_uint8 lcd_id, kal_bool on)
{
lcd_power_up();
switch (lcd_id)
{
case MAIN_LCD:
#if (defined(MT6217)||defined(MT6218B)||defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
DRV_WriteReg32(LCD_ROI_CMD_ADDR_REG,MAIN_LCD_CMD_ADDR);
DRV_WriteReg32(LCD_ROI_DATA_ADDR_REG,MAIN_LCD_DATA_ADDR);
#endif /* MT6218B, MT6219 */
MainLCD->PWRON(on);
break;
#ifdef DUAL_LCD
case SUB_LCD:
#if (defined(MT6217)||defined(MT6218B)||defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
DRV_WriteReg32(LCD_ROI_CMD_ADDR_REG,SUB_LCD_CMD_ADDR);
DRV_WriteReg32(LCD_ROI_DATA_ADDR_REG,SUB_LCD_DATA_ADDR);
#endif /* MT6218B, MT6219 */
SubLCD->PWRON(on);
break;
#endif /* DUAL_LCD */
default:
ASSERT(0);
break;
}
lcd_power_down();
} /* lcd_power_on() */
/*************************************************************************
* FUNCTION
* lcd_partial_on
*
* DESCRIPTION
* This function is used to display partial screen on LCD
*
* PARAMETERS
* lcd_id : selection MAIN_LCD or SUB_LCD
* start_line : the first line to display
* end_line : the last line to display
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void lcd_partial_on(kal_uint8 lcd_id, kal_uint16 start_line, kal_uint16 end_line)
{
lcd_power_up();
switch (lcd_id)
{
case MAIN_LCD:
#if (defined(MT6217)||defined(MT6218B)||defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
DRV_WriteReg32(LCD_ROI_CMD_ADDR_REG,MAIN_LCD_CMD_ADDR);
DRV_WriteReg32(LCD_ROI_DATA_ADDR_REG,MAIN_LCD_DATA_ADDR);
#endif /* MT6218B, MT6219 */
if (MainLCD->PartialOn != NULL)
MainLCD->PartialOn(start_line,end_line);
break;
#ifdef DUAL_LCD
case SUB_LCD:
#if (defined(MT6217)||defined(MT6218B)||defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
DRV_WriteReg32(LCD_ROI_CMD_ADDR_REG,SUB_LCD_CMD_ADDR);
DRV_WriteReg32(LCD_ROI_DATA_ADDR_REG,SUB_LCD_DATA_ADDR);
#endif /* MT6218B, MT6219 */
if (SubLCD->PartialOn != NULL)
SubLCD->PartialOn(start_line,end_line);
break;
#endif /* DUAL_LCD */
default:
ASSERT(0);
break;
}
lcd_power_down();
} /* lcd_partial_on() */
/*************************************************************************
* FUNCTION
* lcd_partial_off
*
* DESCRIPTION
* This function is used to stop partial display mode
*
* PARAMETERS
* lcd_id : selection MAIN_LCD or SUB_LCD
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void lcd_partial_off(kal_uint8 lcd_id)
{
lcd_power_up();
switch (lcd_id)
{
case MAIN_LCD:
#if (defined(MT6217)||defined(MT6218B)||defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
DRV_WriteReg32(LCD_ROI_CMD_ADDR_REG,MAIN_LCD_CMD_ADDR);
DRV_WriteReg32(LCD_ROI_DATA_ADDR_REG,MAIN_LCD_DATA_ADDR);
#endif /* MT6218B, MT6219 */
if (MainLCD->PartialOff != NULL)
MainLCD->PartialOff();
break;
#ifdef DUAL_LCD
case SUB_LCD:
#if (defined(MT6217)||defined(MT6218B)||defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
DRV_WriteReg32(LCD_ROI_CMD_ADDR_REG,SUB_LCD_CMD_ADDR);
DRV_WriteReg32(LCD_ROI_DATA_ADDR_REG,SUB_LCD_DATA_ADDR);
#endif /* MT6218B, MT6219 */
if (SubLCD->PartialOff != NULL)
SubLCD->PartialOff();
break;
#endif /* DUAL_LCD */
default:
ASSERT(0);
break;
}
lcd_power_down();
} /* lcd_partial_on() */
/*************************************************************************
* FUNCTION
* lcd_partial_display_align_line
*
* DESCRIPTION
* This function is to return align line for partial display
*
* PARAMETERS
* lcd_id : selection MAIN_LCD or SUB_LCD
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint8 lcd_partial_display_align_line(kal_uint8 lcd_id)
{
switch (lcd_id)
{
case MAIN_LCD:
if (MainLCD->partial_display_align != NULL)
return (MainLCD->partial_display_align());
else
return 0;
break;
#ifdef DUAL_LCD
case SUB_LCD:
if (SubLCD->partial_display_align != NULL)
return (SubLCD->partial_display_align());
else
return 0;
break;
#endif /* DUAL_LCD */
default:
ASSERT(0);
break;
}
return 0;
} /* lcd_partial_display_align_line() */
/*************************************************************************
* FUNCTION
* lcd_bright_level
*
* DESCRIPTION
* This function is used to set the brightness of LCM
*
* PARAMETERS
* lcd_id : selection MAIN_LCD or SUB_LCD
* bright_level: brightness level of LCM
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void lcd_bright_level(kal_uint8 lcd_id, kal_uint8 bright_level)
{
lcd_power_up();
switch (lcd_id)
{
case MAIN_LCD:
#if (defined(MT6217)||defined(MT6218B)||defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
DRV_WriteReg32(LCD_ROI_CMD_ADDR_REG,MAIN_LCD_CMD_ADDR);
DRV_WriteReg32(LCD_ROI_DATA_ADDR_REG,MAIN_LCD_DATA_ADDR);
#endif /* MT6218B, MT6219 */
MainLCD->BrightLevel(bright_level);
break;
#ifdef DUAL_LCD
case SUB_LCD:
#if (defined(MT6217)||defined(MT6218B)||defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227)||defined(MT6228)||defined(MT6229)||defined(MT6230))
DRV_WriteReg32(LCD_ROI_CMD_ADDR_REG,SUB_LCD_CMD_ADDR);
DRV_WriteReg32(LCD_ROI_DATA_ADDR_REG,SUB_LCD_DATA_ADDR);
#endif /* MT6218B, MT6219 */
SubLCD->BrightLevel(bright_level);
break;
#endif /* DUAL_LCD */
default:
ASSERT(0);
break;
}
lcd_power_down();
} /* lcd_bright_level() */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -