/** ****************************************************************************** * @file fm33a0xxev_lcd.h * @author FM33A0XXEV Application Team * @version V1.0.0 * @date 16-April-2020 * @brief This file contains all the functions prototypes for the LCD firmware library. ****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __FM33A0XXEV_LCD_H #define __FM33A0XXEV_LCD_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include "FM33A0XXEV.h" #define LCD_CR_SCSEL_Pos 20/* µçÈÝÇý¶¯Ä£Ê½£¬Çý¶¯ÆµÂÊ 000£ºÆµÂÊΪ֡Ƶ*COMÊý 001£ºÆµÂÊΪLSCLK/8 010£ºÆµÂÊΪLSCLK/16 011£ºÆµÂÊΪLSCLK/32 100£ºÆµÂÊΪLSCLK/64 101£ºÆµÂÊΪLSCLK/128 110£ºÆµÂÊΪLSCLK/256 111£ºÆµÂÊΪLSCLK/512Ïà¹Øº¯Êý */ #define LCD_CR_SCSEL_Msk (0x7U << LCD_CR_SCSEL_Pos) #define LCD_CR_SCSEL_LSCLK_COM (0x0U << LCD_CR_SCSEL_Pos) /* ƵÂÊΪ֡Ƶ*COMÊý */ #define LCD_CR_SCSEL_LSCLK_8 (0x1U << LCD_CR_SCSEL_Pos) /* ƵÂÊΪLSCLK/8*/ #define LCD_CR_SCSEL_LSCLK_16 (0x2U << LCD_CR_SCSEL_Pos) /* ƵÂÊΪLSCLK/16 */ #define LCD_CR_SCSEL_LSCLK_32 (0x3U << LCD_CR_SCSEL_Pos) /* ƵÂÊΪLSCLK/32 */ #define LCD_CR_SCSEL_LSCLK_64 (0x4U << LCD_CR_SCSEL_Pos) /* ƵÂÊΪLSCLK/64 */ #define LCD_CR_SCSEL_LSCLK_128 (0x5U << LCD_CR_SCSEL_Pos) /* ƵÂÊΪLSCLK/128 */ #define LCD_CR_SCSEL_LSCLK_256 (0x6U << LCD_CR_SCSEL_Pos) /* ƵÂÊΪLSCLK/256 */ #define LCD_CR_SCSEL_LSCLK_512 (0x7U << LCD_CR_SCSEL_Pos) /* ƵÂÊΪLSCLK/512 */ #define LCD_CR_SC_CTRL_Pos 18/* µçÈÝÇý¶¯Ä£Ê½£¬Çý¶¯·½Ê½¿ØÖÆ 00£ºµ¥´ÎÇý¶¯ 01£ºÁ¬ÐøÇý¶¯2´Î 10£ºÁ¬ÐøÇý¶¯4´Î 11£º¶à´ÎÇý¶¯ Ïà¹Øº¯Êý */ #define LCD_CR_SC_CTRL_Msk (0x3U << LCD_CR_SC_CTRL_Pos) #define LCD_CR_SC_CTRL_S0 (0x0U << LCD_CR_SC_CTRL_Pos) /* µ¥´ÎÇý¶¯ */ #define LCD_CR_SC_CTRL_S1 (0x1U << LCD_CR_SC_CTRL_Pos) /* Á¬ÐøÇý¶¯2´Î*/ #define LCD_CR_SC_CTRL_S2 (0x2U << LCD_CR_SC_CTRL_Pos) /* Á¬ÐøÇý¶¯4´Î */ #define LCD_CR_SC_CTRL_S3 (0x3U << LCD_CR_SC_CTRL_Pos) /* ¶à´ÎÇý¶¯ */ #define LCD_CR_IC_CTRL_Pos 16 /* Æ«Öõç·ÊäÈëµçÁ÷Ô´´óС¿ØÖÆ (Input bias Current Control) 00£ºµçÁ÷×î´ó 01£ºµçÁ÷´Î´ó 10£ºµçÁ÷´ÎС 11£ºµçÁ÷×îС */ #define LCD_CR_IC_CTRL_Msk (0x3U << LCD_CR_IC_CTRL_Pos) #define LCD_CR_IC_CTRL_L3 (0x0U << LCD_CR_IC_CTRL_Pos) /* µçÁ÷×î´ó */ #define LCD_CR_IC_CTRL_L2 (0x1U << LCD_CR_IC_CTRL_Pos) /* µçÁ÷´Î´ó */ #define LCD_CR_IC_CTRL_L1 (0x2U << LCD_CR_IC_CTRL_Pos) /* µçÁ÷´ÎС */ #define LCD_CR_IC_CTRL_L0 (0x3U << LCD_CR_IC_CTRL_Pos) /* µçÁ÷×îС */ #define LCD_CR_ENMODE_Pos 15 /* Çý¶¯Ä£Ê½Ñ¡Ôñ (LCD Enabling Mode) 0£ºRFU 1£ºÆ¬ÄÚµç×èÐÍÇý¶¯ */ #define LCD_CR_ENMODE_Msk (0x1U << LCD_CR_ENMODE_Pos) #define LCD_CR_ENMODE_EXTERNALCAP (0x0U << LCD_CR_ENMODE_Pos) /* 0 = ƬÍâµçÈÝÇý¶¯ */ #define LCD_CR_ENMODE_INNERRESISTER (0x1U << LCD_CR_ENMODE_Pos) /* 1 = ƬÄÚµç×èÐÍÇý¶¯ */ #define LCD_CR_FLICK_Pos 14 /* ÏÔʾÉÁ˸ʹÄÜλ (LCD Flick Enable) 1£ºÏÔʾÉÁ˸£¬ÉÁ˸ƵÂÊÓÉTONºÍTOFF¼Ä´æÆ÷ÉèÖà 0£º¹Ø±ÕÉÁ˸ */ #define LCD_CR_FLICK_Msk (0x1U << LCD_CR_FLICK_Pos) /* ÏÔʾÉÁ˸£¬ÉÁ˸ƵÂÊÓÉTONºÍTOFF¼Ä´æÆ÷ÉèÖà */ /* ¹Ø±ÕÉÁ˸ */ #define LCD_CR_BIAS_Pos 8 /* LCDÆ«ÖÃµçÆ½Ñ¡Ôñ룬ÓÃÓÚÏÔʾ»Ò¶È¿ØÖÆ (LCD Bias Voltage Select) */ #define LCD_CR_BIAS_Msk (0xfU << LCD_CR_BIAS_Pos) #define LCD_CR_BIASMD_Pos 5 /* Æ«ÖÃÀàÐÍÑ¡Ôñ (Bias Mode) 1£º1/3 Bias 0£º1/4 Bias */ #define LCD_CR_BIASMD_Msk (0x1U << LCD_CR_BIASMD_Pos) #define LCD_CR_BIASMD_3BIAS (0x1U << LCD_CR_BIASMD_Pos) /* 1/3 Bias */ #define LCD_CR_BIASMD_4BIAS (0x0U << LCD_CR_BIASMD_Pos) /* 1/4 Bias */ #define LCD_CR_ANTIPOLAR_Pos 4 /* ·À¼«»¯Ê¹ÄÜ (Anti-Polarization) 1£ºCOMºÍSEGÔÚLCD¹Ø±ÕÇé¿öÏÂ½ÓµØ 0£ºCOMºÍSEGÔÚLCD¹Ø±ÕÇé¿öϸ¡¿Õ */ #define LCD_CR_ANTIPOLAR_Msk (0x1U << LCD_CR_ANTIPOLAR_Pos) #define LCD_CR_ANTIPOLAR_GND (0x1U << LCD_CR_ANTIPOLAR_Pos) /* COMºÍSEGÔÚLCD¹Ø±ÕÇé¿öÏÂ½ÓµØ */ #define LCD_CR_ANTIPOLAR_FLOAT (0x0U << LCD_CR_ANTIPOLAR_Pos) /* COMºÍSEGÔÚLCD¹Ø±ÕÇé¿öϸ¡¿Õ */ #define LCD_CR_WFT_Pos 3 /* Çý¶¯²¨ÐÎÑ¡Ôñ (Waveform Format) 1£ºBÀನÐÎ 0£ºAÀನÐÎ */ #define LCD_CR_WFT_Msk (0x1U << LCD_CR_WFT_Pos) #define LCD_CR_WFT_BTYPE (0x1U << LCD_CR_WFT_Pos) /* BÀನÐÎ */ #define LCD_CR_WFT_ATYPE (0x0U << LCD_CR_WFT_Pos) /* AÀನÐÎ */ #define LCD_CR_LMUX_Pos 1 /* COMÊýÁ¿Ñ¡Ôñ (Segment Line Mux) 00£º4COM 01£º6COM 10/11£º8COM */ #define LCD_CR_LMUX_Msk (0x3U << LCD_CR_LMUX_Pos) #define LCD_CR_LMUX_4COM (0x0U << LCD_CR_LMUX_Pos) /* 4COM */ #define LCD_CR_LMUX_6COM (0x1U << LCD_CR_LMUX_Pos) /* 6COM */ #define LCD_CR_LMUX_8COM (0x2U << LCD_CR_LMUX_Pos) /* 8COM */ #define LCD_CR_EN_Pos 0 /* LCDÏÔʾʹÄÜλ (LCD Enable) 1£ºÆô¶¯LCDÏÔʾ 0£º¹Ø±ÕLCDÏÔʾ */ #define LCD_CR_EN_Msk (0x1U << LCD_CR_EN_Pos) /* Æô¶¯LCDÏÔʾ */ /* ¹Ø±ÕLCDÏÔʾ */ #define LCD_TEST_LCCTRL_Pos 7 /* LCD²âÊÔ¿ØÖÆÎ»£¬½öÔÚ²âÊÔģʽÏÂÓÐЧ (Line Constant Control) COM¡¢SEGÊä³öµçƽÓɲâÊÔģʽϵÄÒý½ÅÊä³öÊý¾Ý¼Ä´æÆ÷¾ö¶¨¡£²»Í¬ÉèÖÃÏÂSEG»òCOMÊä³öµÄ½á¹û²Î¼ûºóÎıí¸ñ¡£ */ #define LCD_TEST_LCCTRL_Msk (0x1U << LCD_TEST_LCCTRL_Pos) #define LCD_TEST_LCCTRL_LOW (0x0U << LCD_TEST_LCCTRL_Pos) #define LCD_TEST_LCCTRL_HIGH (0x1U << LCD_TEST_LCCTRL_Pos) #define LCD_TEST_TESTEN_Pos 0 /* ²âÊÔģʽʹÄÜλ (Test mode Enable) 1£ºLCD²âÊÔģʽʹÄÜ¡£ÔÚLCD²âÊÔģʽÏ£¬LCDÒý½Å¾²Ì¬Êä³öÄ£ÄâÖ±Á÷µçƽ£¬ËùÓÐÓ붯̬ɨÃèʱ¼äÒÔ¼°É¨Ã貨ÐÎÏà¹Ø¼Ä´æÆ÷ÉèÖÃÎÞЧ 0£ºÕý³£¹¤×÷ģʽ£¬²âÊÔģʽÎÞЧ£¬Ïà¹Ø²âÊԼĴæÆ÷¿ØÖÆÎÞЧ */ #define LCD_TEST_TESTEN_Msk (0x1U << LCD_TEST_TESTEN_Pos) /* LCD²âÊÔģʽʹÄÜ¡£ÔÚLCD²âÊÔģʽÏ£¬LCDÒý½Å¾²Ì¬Êä³öÄ£ÄâÖ±Á÷µçƽ£¬ËùÓÐÓ붯̬ɨÃèʱ¼äÒÔ¼°É¨Ã貨ÐÎÏà¹Ø¼Ä´æÆ÷ÉèÖÃÎÞЧ */ /* Õý³£¹¤×÷ģʽ£¬²âÊÔģʽÎÞЧ£¬Ïà¹Ø²âÊԼĴæÆ÷¿ØÖÆÎÞЧ */ #define LCD_FCR_DF_Pos 0 /* ÏÔʾԤ·ÖƵ¼Ä´æÆ÷ (Display Frequency) */ #define LCD_FCR_DF_Msk (0xffU << LCD_FCR_DF_Pos) #define LCD_FLKT_TOFF_Pos 8 /* ÉÁ˸ÏÔʾϨÃðʱ¼ä¼Ä´æÆ÷ (Display-Off Time) TOFF×îС²½³¤ÎªTstep = COM*DF[7:0]*2*16/32768Hz£¬Êµ¼ÊOFFʱ¼äΪTOFF * Tstep */ #define LCD_FLKT_TOFF_Msk (0xffU << LCD_FLKT_TOFF_Pos) #define LCD_FLKT_TON_Pos 0 /* ÉÁ˸ÏÔʾµãÁÁʱ¼ä¼Ä´æÆ÷ (Display-On Time) TON×îС²½³¤ÎªTstep = COM*DF[7:0]*2*16/32768Hz£¬Êµ¼ÊONʱ¼äΪTON * Tstep */ #define LCD_FLKT_TON_Msk (0xffU << LCD_FLKT_TON_Pos) #define LCD_IER_DONIE_Pos 1 /* ÏÔʾµãÁÁÖжÏʹÄÜλ (Display-On Interrupt Enable) 1£ºÏÔʾµãÁÁÖжÏʹÄÜ 0£ºÏÔʾµãÁÁÖжϽûÖ¹ */ #define LCD_IER_DONIE_Msk (0x1U << LCD_IER_DONIE_Pos) /* ÏÔʾµãÁÁÖжÏʹÄÜ */ /* ÏÔʾµãÁÁÖжϽûÖ¹ */ #define LCD_IER_DOFFIE_Pos 0 /* ÏÔʾϨÃðÖжÏʹÄÜλ (Display-OFF Interrupt Enable) 1£ºÏÔʾϨÃðÖжÏʹÄÜ 0£ºÏÔʾϨÃðÖжϽûÖ¹ */ #define LCD_IER_DOFFIE_Msk (0x1U << LCD_IER_DOFFIE_Pos) /* ÏÔʾϨÃðÖжÏʹÄÜ */ /* ÏÔʾϨÃðÖжϽûÖ¹ */ #define LCD_ISR_DONIF_Pos 1 /* ÏÔʾµãÁÁÖжϱêÖ¾ (Display-On Interrupt Flag,write 1 to clear) ÏÔʾÓÉÃð±äÁÁʱӲ¼þ²úÉúÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þÇåÁã */ #define LCD_ISR_DONIF_Msk (0x1U << LCD_ISR_DONIF_Pos) #define LCD_ISR_DOFFIF_Pos 0 /* ÏÔʾϨÃðÖжϱêÖ¾ (Display-OFF Interrupt Flag,write 1 to clear) ÏÔʾÓÉÁÁ±äÃðʱӲ¼þ²úÉúÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þÇåÁã */ #define LCD_ISR_DOFFIF_Msk (0x1U << LCD_ISR_DOFFIF_Pos) #define LCD_BSTCR_OSC_CFG_Pos 12 #define LCD_BSTCR_OSC_CFG_Msk (0xfU << LCD_BSTCR_OSC_CFG_Pos) #define LCD_BSTCR_BUF_OFF_Pos 9 #define LCD_BSTCR_BUF_OFF_Msk (0x1U << LCD_BSTCR_BUF_OFF_Pos) #define LCD_BSTCR_BUFBYP_Pos 8 #define LCD_BSTCR_BUFBYP_Msk (0x1U << LCD_BSTCR_BUFBYP_Pos) #define LCD_BSTCR_VLCDPD_Pos 7 #define LCD_BSTCR_VLCDPD_Msk (0x1U << LCD_BSTCR_VLCDPD_Pos) #define LCD_BSTCR_VLCDCFG_Pos 2 #define LCD_BSTCR_VLCDCFG_Msk (0x1fU << LCD_BSTCR_VLCDCFG_Pos) #define LCD_BSTCR_VLCDCFG_2_4V (0x0U << LCD_BSTCR_VLCDCFG_Pos) #define LCD_BSTCR_VLCDCFG_2_6V (0x1U << LCD_BSTCR_VLCDCFG_Pos) #define LCD_BSTCR_VLCDCFG_2_8V (0x2U << LCD_BSTCR_VLCDCFG_Pos) #define LCD_BSTCR_VLCDCFG_3_0V (0x3U << LCD_BSTCR_VLCDCFG_Pos) #define LCD_BSTCR_VLCDCFG_3_2V (0x4U << LCD_BSTCR_VLCDCFG_Pos) #define LCD_BSTCR_VLCDCFG_3_4V (0x5U << LCD_BSTCR_VLCDCFG_Pos) #define LCD_BSTCR_VLCDCFG_3_6V (0x6U << LCD_BSTCR_VLCDCFG_Pos) #define LCD_BSTCR_VLCDCFG_3_8V (0x7U << LCD_BSTCR_VLCDCFG_Pos) #define LCD_BSTCR_VLCDCFG_4_0V (0x8U << LCD_BSTCR_VLCDCFG_Pos) #define LCD_BSTCR_VLCDCFG_4_2V (0x9U << LCD_BSTCR_VLCDCFG_Pos) #define LCD_BSTCR_VLCDCFG_4_4V (0xaU << LCD_BSTCR_VLCDCFG_Pos) #define LCD_BSTCR_VLCDCFG_4_6V (0xbU << LCD_BSTCR_VLCDCFG_Pos) #define LCD_BSTCR_VLCDCFG_4_8V (0xcU << LCD_BSTCR_VLCDCFG_Pos) #define LCD_BSTCR_VLCDCFG_5_0V (0xdU << LCD_BSTCR_VLCDCFG_Pos) #define LCD_BSTCR_VLCDCFG_5_2V (0xeU << LCD_BSTCR_VLCDCFG_Pos) #define LCD_BSTCR_VLCDCFG_5_4V (0xfU << LCD_BSTCR_VLCDCFG_Pos) #define LCD_BSTCR_BOOST_TEN_Pos 1 #define LCD_BSTCR_BOOST_TEN_Msk (0x1U << LCD_BSTCR_BOOST_TEN_Pos) #define LCD_BSTCR_BOOST_EN_Pos 0 #define LCD_BSTCR_BOOST_EN_Msk (0x1U << LCD_BSTCR_BOOST_EN_Pos) #define LCD_COM_EN_COMEN_Pos 0 /* LCD COM0~3Êä³öʹÄÜ¿ØÖÆ */ #define LCD_COM_EN_COMEN_Msk (0xfU << LCD_COM_EN_COMEN_Pos) #define LCD_SEG_EN0_SEGENx_Pos 0 /* LCD SEG0~31Êä³öʹÄÜ¿ØÖÆ */ #define LCD_SEG_EN0_SEGENx_Msk (0xffffffffU << LCD_SEG_EN0_SEGENx_Pos) #define LCD_SEG_EN1_SEGENx_Pos 0 /* LCD SEG32~43,COM4~7Êä³öʹÄÜ¿ØÖÆ */ #define LCD_SEG_EN1_SEGENx_Msk (0xfffU << LCD_SEG_EN1_SEGENx_Pos) #define LCD_COM_EN_COMEN3_Pos 3 /* COM3Êä³ö¿ØÖÆ@4\6\8COMģʽ */ #define LCD_COM_EN_COMEN3_Msk (0x1U << LCD_COM_EN_COMEN3_Pos) #define LCD_COM_EN_COMEN2_Pos 2 /* COM2Êä³ö¿ØÖÆ@4\6\8COMģʽ */ #define LCD_COM_EN_COMEN2_Msk (0x1U << LCD_COM_EN_COMEN2_Pos) #define LCD_COM_EN_COMEN1_Pos 1 /* COM1Êä³ö¿ØÖÆ@4\6\8COMģʽ */ #define LCD_COM_EN_COMEN1_Msk (0x1U << LCD_COM_EN_COMEN1_Pos) #define LCD_COM_EN_COMEN0_Pos 0 /* COM0Êä³ö¿ØÖÆ@4\6\8COMģʽ */ #define LCD_COM_EN_COMEN0_Msk (0x1U << LCD_COM_EN_COMEN0_Pos) #define LCD_SEG_EN0_SEGEN31_Pos 31 /* SEG31Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN31_Msk (0x1U << LCD_SEG_EN0_SEGEN31_Pos) #define LCD_SEG_EN0_SEGEN30_Pos 30 /* SEG30Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN30_Msk (0x1U << LCD_SEG_EN0_SEGEN30_Pos) #define LCD_SEG_EN0_SEGEN29_Pos 29 /* SEG29Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN29_Msk (0x1U << LCD_SEG_EN0_SEGEN29_Pos) #define LCD_SEG_EN0_SEGEN28_Pos 28 /* SEG28Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN28_Msk (0x1U << LCD_SEG_EN0_SEGEN28_Pos) #define LCD_SEG_EN0_SEGEN27_Pos 27 /* SEG27Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN27_Msk (0x1U << LCD_SEG_EN0_SEGEN27_Pos) #define LCD_SEG_EN0_SEGEN26_Pos 26 /* SEG26Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN26_Msk (0x1U << LCD_SEG_EN0_SEGEN26_Pos) #define LCD_SEG_EN0_SEGEN25_Pos 25 /* SEG25Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN25_Msk (0x1U << LCD_SEG_EN0_SEGEN25_Pos) #define LCD_SEG_EN0_SEGEN24_Pos 24 /* SEG24Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN24_Msk (0x1U << LCD_SEG_EN0_SEGEN24_Pos) #define LCD_SEG_EN0_SEGEN23_Pos 23 /* SEG23Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN23_Msk (0x1U << LCD_SEG_EN0_SEGEN23_Pos) #define LCD_SEG_EN0_SEGEN22_Pos 22 /* SEG22Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN22_Msk (0x1U << LCD_SEG_EN0_SEGEN22_Pos) #define LCD_SEG_EN0_SEGEN21_Pos 21 /* SEG21Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN21_Msk (0x1U << LCD_SEG_EN0_SEGEN21_Pos) #define LCD_SEG_EN0_SEGEN20_Pos 20 /* SEG20Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN20_Msk (0x1U << LCD_SEG_EN0_SEGEN20_Pos) #define LCD_SEG_EN0_SEGEN19_Pos 19 /* SEG19Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN19_Msk (0x1U << LCD_SEG_EN0_SEGEN19_Pos) #define LCD_SEG_EN0_SEGEN18_Pos 18 /* SEG18Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN18_Msk (0x1U << LCD_SEG_EN0_SEGEN18_Pos) #define LCD_SEG_EN0_SEGEN17_Pos 17 /* SEG17Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN17_Msk (0x1U << LCD_SEG_EN0_SEGEN17_Pos) #define LCD_SEG_EN0_SEGEN16_Pos 16 /* SEG16Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN16_Msk (0x1U << LCD_SEG_EN0_SEGEN16_Pos) #define LCD_SEG_EN0_SEGEN15_Pos 15 /* SEG15Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN15_Msk (0x1U << LCD_SEG_EN0_SEGEN15_Pos) #define LCD_SEG_EN0_SEGEN14_Pos 14 /* SEG14Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN14_Msk (0x1U << LCD_SEG_EN0_SEGEN14_Pos) #define LCD_SEG_EN0_SEGEN13_Pos 13 /* SEG13Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN13_Msk (0x1U << LCD_SEG_EN0_SEGEN13_Pos) #define LCD_SEG_EN0_SEGEN12_Pos 12 /* SEG12Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN12_Msk (0x1U << LCD_SEG_EN0_SEGEN12_Pos) #define LCD_SEG_EN0_SEGEN11_Pos 11 /* SEG11Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN11_Msk (0x1U << LCD_SEG_EN0_SEGEN11_Pos) #define LCD_SEG_EN0_SEGEN10_Pos 10 /* SEG10Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN10_Msk (0x1U << LCD_SEG_EN0_SEGEN10_Pos) #define LCD_SEG_EN0_SEGEN9_Pos 9 /* SEG9Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN9_Msk (0x1U << LCD_SEG_EN0_SEGEN9_Pos) #define LCD_SEG_EN0_SEGEN8_Pos 8 /* SEG8Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN8_Msk (0x1U << LCD_SEG_EN0_SEGEN8_Pos) #define LCD_SEG_EN0_SEGEN7_Pos 7 /* SEG7Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN7_Msk (0x1U << LCD_SEG_EN0_SEGEN7_Pos) #define LCD_SEG_EN0_SEGEN6_Pos 6 /* SEG6Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN6_Msk (0x1U << LCD_SEG_EN0_SEGEN6_Pos) #define LCD_SEG_EN0_SEGEN5_Pos 5 /* SEG5Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN5_Msk (0x1U << LCD_SEG_EN0_SEGEN5_Pos) #define LCD_SEG_EN0_SEGEN4_Pos 4 /* SEG4Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN4_Msk (0x1U << LCD_SEG_EN0_SEGEN4_Pos) #define LCD_SEG_EN0_SEGEN3_Pos 3 /* SEG3Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN3_Msk (0x1U << LCD_SEG_EN0_SEGEN3_Pos) #define LCD_SEG_EN0_SEGEN2_Pos 2 /* SEG2Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN2_Msk (0x1U << LCD_SEG_EN0_SEGEN2_Pos) #define LCD_SEG_EN0_SEGEN1_Pos 1 /* SEG1Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN1_Msk (0x1U << LCD_SEG_EN0_SEGEN1_Pos) #define LCD_SEG_EN0_SEGEN0_Pos 0 /* SEG0Êä³ö¿ØÖÆ */ #define LCD_SEG_EN0_SEGEN0_Msk (0x1U << LCD_SEG_EN0_SEGEN0_Pos) #define LCD_SEG_EN1_SEGEN43_Pos 11 /* SEG43Êä³ö¿ØÖÆ */ #define LCD_SEG_EN1_SEGEN43_Msk (0x1U << LCD_SEG_EN1_SEGEN43_Pos) #define LCD_SEG_EN1_SEGEN42_Pos 10 /* SEG42Êä³ö¿ØÖÆ */ #define LCD_SEG_EN1_SEGEN42_Msk (0x1U << LCD_SEG_EN1_SEGEN42_Pos) #define LCD_SEG_EN1_SEGEN41_Pos 9 /* SEG41Êä³ö¿ØÖÆ */ #define LCD_SEG_EN1_SEGEN41_Msk (0x1U << LCD_SEG_EN1_SEGEN41_Pos) #define LCD_SEG_EN1_SEGEN40_Pos 8 /* SEG40Êä³ö¿ØÖÆ */ #define LCD_SEG_EN1_SEGEN40_Msk (0x1U << LCD_SEG_EN1_SEGEN40_Pos) #define LCD_SEG_EN1_SEGEN39_Pos 7 /* SEG39Êä³ö¿ØÖÆ */ #define LCD_SEG_EN1_SEGEN39_Msk (0x1U << LCD_SEG_EN1_SEGEN39_Pos) #define LCD_SEG_EN1_SEGEN38_Pos 6 /* SEG38Êä³ö¿ØÖÆ */ #define LCD_SEG_EN1_SEGEN38_Msk (0x1U << LCD_SEG_EN1_SEGEN38_Pos) #define LCD_SEG_EN1_SEGEN37_Pos 5 /* SEG37Êä³ö¿ØÖÆ */ #define LCD_SEG_EN1_SEGEN37_Msk (0x1U << LCD_SEG_EN1_SEGEN37_Pos) #define LCD_SEG_EN1_SEGEN36_Pos 4 /* SEG36Êä³ö¿ØÖÆ */ #define LCD_SEG_EN1_SEGEN36_Msk (0x1U << LCD_SEG_EN1_SEGEN36_Pos) #define LCD_SEG_EN1_SEGEN35_Pos 3 /* SEG35Êä³ö¿ØÖÆ */ #define LCD_SEG_EN1_SEGEN35_Msk (0x1U << LCD_SEG_EN1_SEGEN35_Pos) #define LCD_SEG_EN1_SEGEN34_Pos 2 /* SEG34Êä³ö¿ØÖÆ */ #define LCD_SEG_EN1_SEGEN34_Msk (0x1U << LCD_SEG_EN1_SEGEN34_Pos) #define LCD_SEG_EN1_SEGEN33_Pos 1 /* SEG33Êä³ö¿ØÖÆ */ #define LCD_SEG_EN1_SEGEN33_Msk (0x1U << LCD_SEG_EN1_SEGEN33_Pos) #define LCD_SEG_EN1_SEGEN32_Pos 0 /* SEG32Êä³ö¿ØÖÆ */ #define LCD_SEG_EN1_SEGEN32_Msk (0x1U << LCD_SEG_EN1_SEGEN32_Pos) #define LCD_SEG_EN1_COMEN7_Pos 11 /* COM7¸´ÓÃSEGEN43 */ #define LCD_SEG_EN1_COMEN7_Msk (0x1U << LCD_SEG_EN1_COMEN7_Pos) #define LCD_SEG_EN1_COMEN6_Pos 10 /* COM6¸´ÓÃSEGEN42 */ #define LCD_SEG_EN1_COMEN6_Msk (0x1U << LCD_SEG_EN1_COMEN6_Pos) #define LCD_SEG_EN1_COMEN5_Pos 9 /* COM5¸´ÓÃSEGEN41 */ #define LCD_SEG_EN1_COMEN5_Msk (0x1U << LCD_SEG_EN1_COMEN5_Pos) #define LCD_SEG_EN1_COMEN4_Pos 8 /* COM4¸´ÓÃSEGEN40 */ #define LCD_SEG_EN1_COMEN4_Msk (0x1U << LCD_SEG_EN1_COMEN4_Pos) //Macro_End /* Exported functions --------------------------------------------------------*/ extern void LCD_Deinit(void); /* µçÈÝÇý¶¯Ä£Ê½£¬Çý¶¯ÆµÂÊ 000£ºÆµÂÊΪ֡Ƶ*COMÊý 001£ºÆµÂÊΪLSCLK/8 010£ºÆµÂÊΪLSCLK/16 011£ºÆµÂÊΪLSCLK/32 100£ºÆµÂÊΪLSCLK/64 101£ºÆµÂÊΪLSCLK/128 110£ºÆµÂÊΪLSCLK/256 111£ºÆµÂÊΪLSCLK/512Ïà¹Øº¯Êý */ extern void LCD_CR_SCSEL_Set(uint32_t SetValue); extern uint32_t LCD_CR_SCSEL_Get(void); /* µçÈÝÇý¶¯Ä£Ê½£¬Çý¶¯·½Ê½¿ØÖÆ 00£ºµ¥´ÎÇý¶¯ 01£ºÁ¬ÐøÇý¶¯2´Î 10£ºÁ¬ÐøÇý¶¯4´Î 11£º¶à´ÎÇý¶¯ Ïà¹Øº¯Êý */ extern void LCD_CR_SC_CTRL_Set(uint32_t SetValue); extern uint32_t LCD_CR_SC_CTRL_Get(void); /* Æ«Öõç·ÊäÈëµçÁ÷Ô´´óС¿ØÖÆ (Input bias Current Control) 00£ºµçÁ÷×î´ó 01£ºµçÁ÷´Î´ó 10£ºµçÁ÷´ÎС 11£ºµçÁ÷×îС Ïà¹Øº¯Êý */ extern void LCD_CR_IC_CTRL_Set(uint32_t SetValue); extern uint32_t LCD_CR_IC_CTRL_Get(void); /* Çý¶¯Ä£Ê½Ñ¡Ôñ (LCD Enabling Mode) 0£ºRFU 1£ºÆ¬ÄÚµç×èÐÍÇý¶¯ Ïà¹Øº¯Êý */ extern void LCD_CR_ENMODE_Set(uint32_t SetValue); extern uint32_t LCD_CR_ENMODE_Get(void); /* ÏÔʾÉÁ˸ʹÄÜλ (LCD Flick Enable) 1£ºÏÔʾÉÁ˸£¬ÉÁ˸ƵÂÊÓÉTONºÍTOFF¼Ä´æÆ÷ÉèÖà 0£º¹Ø±ÕÉÁ˸ Ïà¹Øº¯Êý */ extern void LCD_CR_FLICK_Setable(FunState NewState); extern FunState LCD_CR_FLICK_Getable(void); /* LCDÆ«ÖÃµçÆ½Ñ¡Ôñ룬ÓÃÓÚÏÔʾ»Ò¶È¿ØÖÆ (LCD Bias Voltage Select) Ïà¹Øº¯Êý */ extern void LCD_CR_BIAS_Set(uint32_t SetValue); extern uint32_t LCD_CR_BIAS_Get(void); /* Æ«ÖÃÀàÐÍÑ¡Ôñ (Bias Mode) 1£º1/3 Bias 0£º1/4 Bias Ïà¹Øº¯Êý */ extern void LCD_CR_BIASMD_Set(uint32_t SetValue); extern uint32_t LCD_CR_BIASMD_Get(void); /* ·À¼«»¯Ê¹ÄÜ (Anti-Polarization) 1£ºCOMºÍSEGÔÚLCD¹Ø±ÕÇé¿öÏÂ½ÓµØ 0£ºCOMºÍSEGÔÚLCD¹Ø±ÕÇé¿öϸ¡¿Õ Ïà¹Øº¯Êý */ extern void LCD_CR_ANTIPOLAR_Set(uint32_t SetValue); extern uint32_t LCD_CR_ANTIPOLAR_Get(void); /* Çý¶¯²¨ÐÎÑ¡Ôñ (Waveform Format) 1£ºBÀನÐÎ 0£ºAÀನÐÎ Ïà¹Øº¯Êý */ extern void LCD_CR_WFT_Set(uint32_t SetValue); extern uint32_t LCD_CR_WFT_Get(void); /* COMÊýÁ¿Ñ¡Ôñ (Segment Line Mux) 00£º4COM 01£º6COM 10/11£º8COM Ïà¹Øº¯Êý */ extern void LCD_CR_LMUX_Set(uint32_t SetValue); extern uint32_t LCD_CR_LMUX_Get(void); /* LCDÏÔʾʹÄÜλ (LCD Enable) 1£ºÆô¶¯LCDÏÔʾ 0£º¹Ø±ÕLCDÏÔʾ Ïà¹Øº¯Êý */ extern void LCD_CR_EN_Setable(FunState NewState); extern FunState LCD_CR_EN_Getable(void); /* LCD²âÊÔ¿ØÖÆÎ»£¬½öÔÚ²âÊÔģʽÏÂÓÐЧ (Line Constant Control) COM¡¢SEGÊä³öµçƽÓɲâÊÔģʽϵÄÒý½ÅÊä³öÊý¾Ý¼Ä´æÆ÷¾ö¶¨¡£²»Í¬ÉèÖÃÏÂSEG»òCOMÊä³öµÄ½á¹û²Î¼ûºóÎıí¸ñ¡£ Ïà¹Øº¯Êý */ extern void LCD_TEST_LCCTRL_Set(uint32_t SetValue); extern uint32_t LCD_TEST_LCCTRL_Get(void); /* ²âÊÔģʽʹÄÜλ (Test mode Enable) 1£ºLCD²âÊÔģʽʹÄÜ¡£ÔÚLCD²âÊÔģʽÏ£¬LCDÒý½Å¾²Ì¬Êä³öÄ£ÄâÖ±Á÷µçƽ£¬ËùÓÐÓ붯̬ɨÃèʱ¼äÒÔ¼°É¨Ã貨ÐÎÏà¹Ø¼Ä´æÆ÷ÉèÖÃÎÞЧ 0£ºÕý³£¹¤×÷ģʽ£¬²âÊÔģʽÎÞЧ£¬Ïà¹Ø²âÊԼĴæÆ÷¿ØÖÆÎÞЧ Ïà¹Øº¯Êý */ extern void LCD_TEST_TESTEN_Setable(FunState NewState); extern FunState LCD_TEST_TESTEN_Getable(void); /* ÏÔʾԤ·ÖƵ¼Ä´æÆ÷ (Display Frequency) Ïà¹Øº¯Êý */ extern void LCD_FCR_Write(uint32_t SetValue); extern uint32_t LCD_FCR_Read(void); /* ÉÁ˸ÏÔʾϨÃðʱ¼ä¼Ä´æÆ÷ (Display-Off Time) TOFF×îС²½³¤ÎªTstep = COM*DF[7:0]*2*16/32768Hz£¬Êµ¼ÊOFFʱ¼äΪTOFF * Tstep Ïà¹Øº¯Êý */ extern void LCD_FLKT_TOFF_Set(uint32_t SetValue); extern uint32_t LCD_FLKT_TOFF_Get(void); /* ÉÁ˸ÏÔʾµãÁÁʱ¼ä¼Ä´æÆ÷ (Display-On Time) TON×îС²½³¤ÎªTstep = COM*DF[7:0]*2*16/32768Hz£¬Êµ¼ÊONʱ¼äΪTON * Tstep Ïà¹Øº¯Êý */ extern void LCD_FLKT_TON_Set(uint32_t SetValue); extern uint32_t LCD_FLKT_TON_Get(void); /* ÏÔʾµãÁÁÖжÏʹÄÜλ (Display-On Interrupt Enable) 1£ºÏÔʾµãÁÁÖжÏʹÄÜ 0£ºÏÔʾµãÁÁÖжϽûÖ¹ Ïà¹Øº¯Êý */ extern void LCD_IER_DONIE_Setable(FunState NewState); extern FunState LCD_IER_DONIE_Getable(void); /* ÏÔʾϨÃðÖжÏʹÄÜλ (Display-OFF Interrupt Enable) 1£ºÏÔʾϨÃðÖжÏʹÄÜ 0£ºÏÔʾϨÃðÖжϽûÖ¹ Ïà¹Øº¯Êý */ extern void LCD_IER_DOFFIE_Setable(FunState NewState); extern FunState LCD_IER_DOFFIE_Getable(void); /* ÏÔʾµãÁÁÖжϱêÖ¾ (Display-On Interrupt Flag,write 1 to clear) ÏÔʾÓÉÃð±äÁÁʱӲ¼þ²úÉúÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þÇåÁã Ïà¹Øº¯Êý */ extern void LCD_ISR_DONIF_Clr(void); extern FlagStatus LCD_ISR_DONIF_Chk(void); /* ÏÔʾϨÃðÖжϱêÖ¾ (Display-OFF Interrupt Flag,write 1 to clear) ÏÔʾÓÉÁÁ±äÃðʱӲ¼þ²úÉúÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þÇåÁã Ïà¹Øº¯Êý */ extern void LCD_ISR_DOFFIF_Clr(void); extern FlagStatus LCD_ISR_DOFFIF_Chk(void); extern void LCD_BSTCR_OSC_CFG_Set(uint32_t SetValue); extern uint32_t LCD_BSTCR_OSC_CFG_Get(void); extern void LCD_BSTCR_BUF_OFF_Setable(FunState NewState); extern FunState LCD_BSTCR_BUF_OFF_Getable(void); extern void LCD_BSTCR_BUFBYP_Setable(FunState NewState); extern FunState LCD_BSTCR_BUFBYP_Getable(void); extern void LCD_BSTCR_VLCDPD_Setable(FunState NewState); extern FunState LCD_BSTCR_VLCDPD_Getable(void); extern void LCD_BSTCR_VLCDCFG_Set(uint32_t SetValue); extern uint32_t LCD_BSTCR_VLCDCFG_Get(void); extern void LCD_BSTCR_BOOST_TEN_Setable(FunState NewState); extern FunState LCD_BSTCR_BOOST_TEN_Getable(void); extern void LCD_BSTCR_BOOST_EN_Setable(FunState NewState); extern FunState LCD_BSTCR_BOOST_EN_Getable(void); /* LCD COM0~3Êä³öʹÄÜ¿ØÖÆ Ïà¹Øº¯Êý */ extern void LCD_COM_EN_Write(uint32_t SetValue); extern uint32_t LCD_COM_EN_Read(void); /* LCD SEG0~31Êä³öʹÄÜ¿ØÖÆ Ïà¹Øº¯Êý */ extern void LCD_SEG_EN0_Write(uint32_t SetValue); extern uint32_t LCD_SEG_EN0_Read(void); /* LCD SEG32~43,COM4~7Êä³öʹÄÜ¿ØÖÆ Ïà¹Øº¯Êý */ extern void LCD_SEG_EN1_Write(uint32_t SetValue); extern uint32_t LCD_SEG_EN1_Read(void); //Announce_End /*DISPDATAxÏÔʾÊý¾Ý¼Ä´æÆ÷Ë¢ÐÂ*/ extern void LCD_DISPDATAx_Refresh(uint32_t* DispBuf); #ifdef __cplusplus } #endif #endif /* __FM33A0XXEV_LCD_H */