⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd_lcm_if.c

📁 8032底层驱动部分。因为可以移植 所以单独来拿出来
💻 C
📖 第 1 页 / 共 2 页
字号:
      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 + -