123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- /******************************************************************************
- * Copyright (C) 2018, Huada Semiconductor Co.,Ltd All rights reserved.
- *
- * This software is owned and published by:
- * Huada Semiconductor Co.,Ltd ("HDSC").
- *
- * BY DOWNLOADING, INSTALLING OR USING THIS SOFTWARE, YOU AGREE TO BE BOUND
- * BY ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT.
- *
- * This software contains source code for use with HDSC
- * components. This software is licensed by HDSC to be adapted only
- * for use in systems utilizing HDSC components. HDSC shall not be
- * responsible for misuse or illegal use of this software for devices not
- * supported herein. HDSC is providing this software "AS IS" and will
- * not be responsible for issues arising from incorrect user implementation
- * of the software.
- *
- * Disclaimer:
- * HDSC MAKES NO WARRANTY, EXPRESS OR IMPLIED, ARISING BY LAW OR OTHERWISE,
- * REGARDING THE SOFTWARE (INCLUDING ANY ACOOMPANYING WRITTEN MATERIALS),
- * ITS PERFORMANCE OR SUITABILITY FOR YOUR INTENDED USE, INCLUDING,
- * WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, THE IMPLIED
- * WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE, AND THE IMPLIED
- * WARRANTY OF NONINFRINGEMENT.
- * HDSC SHALL HAVE NO LIABILITY (WHETHER IN CONTRACT, WARRANTY, TORT,
- * NEGLIGENCE OR OTHERWISE) FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT
- * LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION,
- * LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING FROM USE OR
- * INABILITY TO USE THE SOFTWARE, INCLUDING, WITHOUT LIMITATION, ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOSS OF DATA,
- * SAVINGS OR PROFITS,
- * EVEN IF Disclaimer HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
- * YOU ASSUME ALL RESPONSIBILITIES FOR SELECTION OF THE SOFTWARE TO ACHIEVE YOUR
- * INTENDED RESULTS, AND FOR THE INSTALLATION OF, USE OF, AND RESULTS OBTAINED
- * FROM, THE SOFTWARE.
- *
- * This software may be replicated in part or whole for the licensed use,
- * with the restriction that this Disclaimer and Copyright notice must be
- * included with each copy of this software, whether used in part or whole,
- * at all times.
- */
- /*****************************************************************************/
- /** \file lcd.h
- **
- ** Headerfile for LCD functions
- **
- **
- ** History:
- ** - 2018-05-03 CJ First Version
- **
- *****************************************************************************/
- #ifndef __LCD_H__
- #define __LCD_H__
- #include "ddl.h"
- #include "interrupts_hc32l136.h"
- /**
- *******************************************************************************
- ** \def group LCD Group LCD
- **
- **
- ******************************************************************************/
- //@{
- /******************************************************************************/
- /* Global pre-processor symbols/macros ('#define') */
- /******************************************************************************/
- #define LCDFULLWRITE 0XFFFFFFFF ///<LCD全显
- #define LCDFULLCLEAR 0X00000000 ///<LCD全清
- #define LCDRAM0_7SIZE 31
- #define LCDRAM8_FSIZE 7
- #define LCDRAMSIZE 0x0F
- /******************************************************************************
- * Global type definitions
- ******************************************************************************/
- /**
- ******************************************************************************
- ** \brief LCD bias源选择
- *****************************************************************************/
- typedef enum en_lcd_biassrc
- {
- LcdInRes_High = 6,///<内部电阻分压,大功耗模式
- LcdInRes_Low = 4,///<内部电阻分压,小功耗模式
- LcdInRes_Mid = 2,///<内部电阻分压,中功耗模式
- LcdExtCap = 1,///<外部电容分压模式
- LcdExtRes = 0,///<外部电阻模式
- }en_lcd_biassrc_t;
- /**
- ******************************************************************************
- ** \brief LCD duty源选择
- *****************************************************************************/
- typedef enum en_lcd_duty
- {
- LcdStatic = 0,///<静态
- LcdDuty2 = 1,///<1/2duty
- LcdDuty3 = 2,///<1/3duty
- LcdDuty4 = 3,///<1/4duty
- LcdDuty6 = 5,///<1/6duty
- LcdDuty8 = 7,///<1/8duty
- }en_lcd_duty_t;
- /**
- ******************************************************************************
- ** \brief LCD bias配置
- *****************************************************************************/
- typedef enum en_lcd_bias
- {
- LcdBias3 = 0,///<1/3 BIAS
- LcdBias2 = 1,///<1/2 BIAS
- }en_lcd_bias_t;
- /**
- ******************************************************************************
- ** \brief LCD 电压泵时钟频率配置
- *****************************************************************************/
- typedef enum en_lcd_cpclk
- {
- LcdClk2k = 0,///<2k
- LcdClk4k = 1,///<4k
- LcdClk8k = 2,///<8k
- LcdClk16k = 3,///<16k
- }en_lcd_cpclk_t;
- /**
- ******************************************************************************
- ** \brief LCD 扫描频率配置
- *****************************************************************************/
- typedef enum en_lcd_scanclk
- {
- LcdClk64hz = 0,///<64hz
- LcdClk128hz = 1,///<128hz
- LcdClk256hz = 2,///<256hz
- LcdClk512hz = 3,///<512hz
- }en_lcd_scanclk_t;
- /**
- ******************************************************************************
- ** \brief LCD功能使能
- *****************************************************************************/
- typedef enum en_lcd_func
- {
- LcdEn = 0,///<模块使能
- LcdBlinkEn = 1,///<LCD闪屏使能
- }en_lcd_func_t;
- /**
- ******************************************************************************
- ** \brief LCD显示模式
- *****************************************************************************/
- typedef enum en_lcd_dispmode
- {
- LcdMode0 = 0,///<模式0
- LcdMode1 = 1,///<模式1
- }en_lcd_dispmode_t;
- /**
- ******************************************************************************
- ** \brief LCD时钟源选择
- *****************************************************************************/
- typedef enum en_lcd_clk
- {
- LcdXTL = 1,///<外部32k
- LcdRCL = 0,///<内部32k
- }en_lcd_clk_t;
- /**
- ******************************************************************************
- ** \brief LCD显示SEG COM端口配置
- *****************************************************************************/
- typedef struct stc_lcd_segcom
- {
- uint32_t u32Seg0_31; ///<SEG0-31配置
- boolean_t bMux; ///<SEG32-35
- uint8_t u8Com0_3; ///<COM0-3配置
- union Seg32_39VLcdCom7_4 ///<Seg32_39/Com7_4配置
- {
- uint8_t SegVLcdCom;
- struct
- {
- uint8_t Seg39Com4 :1;
- uint8_t Seg38Com5 :1;
- uint8_t Seg37Com6 :1;
- uint8_t Seg36Com7 :1;
- uint8_t Seg35LcdH :1;
- uint8_t Seg34Lcd3 :1;
- uint8_t Seg33Lcd2 :1;
- uint8_t Seg32Lcd1 :1;
-
- }Bits;
- }Seg32_39VLcdCom7_4_t;
- }stc_lcd_segcom_t;
- /**
- ******************************************************************************
- ** \brief LCD端口配置参数
- *****************************************************************************/
- typedef struct stc_lcd_segcompara
- {
- en_lcd_duty_t enDuty; ///<占空比
- en_lcd_biassrc_t enBiasSrc; ///<时钟源
- uint8_t u8MaxSeg; ///<最大SEG口
- }stc_lcd_segcompara_t;
- /**
- ******************************************************************************
- ** \brief I2C初始化配置结构
- *****************************************************************************/
- typedef struct stc_lcd_config
- {
- en_lcd_biassrc_t enBiasSrc; ///<Bias源选择
- en_lcd_duty_t enDuty; ///<占空比选择
- en_lcd_bias_t enBias; ///bias配置
- en_lcd_cpclk_t enCpClk; ///<电压泵时钟频率选择
- en_lcd_scanclk_t enScanClk; ///<扫描频率选择
- en_lcd_dispmode_t enDispMode;///<显示模式选择
- en_lcd_clk_t enClk; ///<模块clk选择
- boolean_t bTouchNvic; ///<是否使能NVIC
- }stc_lcd_config_t;
- /******************************************************************************
- * Global variable declarations ('extern', definition in C source)
- *****************************************************************************/
- /******************************************************************************
- * Global function prototypes (definition in C source)
- *****************************************************************************/
- //LCD初始化函数
- en_result_t LCD_Init(stc_lcd_config_t *pstcLcdCfg);
- //lcd模块关闭函数
- en_result_t LCD_DeInit(void);
- //lcd 时钟源选择函数
- en_result_t LCD_SetClkSrc(en_lcd_clk_t enLcdClk);
- //lcd bias源选择函数
- en_result_t LCD_SelBiasSrc(en_lcd_biassrc_t enBiasSrc);
- //lcd duty配置函数
- en_result_t LCD_SetDuty(en_lcd_duty_t enDuty);
- //lcd bias配置函数
- en_result_t LCD_SetBias(en_lcd_bias_t enBias);
- //lcd电压泵时钟频率选择
- en_result_t LCD_SelCpClk(en_lcd_cpclk_t enCpClk);
- //lcd扫描频率选择
- en_result_t LCD_SelScanClk(en_lcd_scanclk_t enScanClk);
- //lcd 功能使能禁止函数
- en_result_t LCD_EnFunc(en_lcd_func_t enFunc,boolean_t bFlag);
- //lcd显示模式函数
- en_result_t LCD_SetDispMode(en_lcd_dispmode_t enDispMode);
- //lcd对比度设置
- en_result_t LCD_SetContrast(uint8_t u8Contrast);
- //lcd闪屏计数器设置
- en_result_t LCD_SetBlinkCnt(uint8_t u8BlinkCnt);
- //lcd中断清除
- en_result_t LCD_ClrIntState(void);
- //LCD运行模式获取端口配置
- en_result_t LCD_GetSegCom(stc_lcd_segcompara_t *pstcSegComPara,stc_lcd_segcom_t *pstcSegCom);
- //lcd segcom端口配置
- en_result_t LCD_SetSegCom(stc_lcd_segcom_t *pstcSegCom);
- //lcd全显
- en_result_t LCD_FullDisp(void);
- //lcd全清
- en_result_t LCD_ClearDisp(void);
- //lcd写RAM函数
- en_result_t LCD_WriteRam(uint16_t u16Row, uint32_t u32List, boolean_t bData);
- en_result_t LCD_WriteRam0_7Int32(uint8_t u8Row,uint32_t u32Data);
- en_result_t LCD_WriteRam8_FInt8(uint8_t u8Row,uint8_t u8Data);
-
- //@} // LCDGroup
- #ifdef __cplusplus
- #endif
- #endif /* __LCD_H__ */
- /******************************************************************************
- * EOF (not truncated)
- *****************************************************************************/
|