/** ****************************************************************************** * @file fm33a0xxev_vrtc.h * @author FM33A0XXEV Application Team * @version V1.0.0 * @date 16-April-2020 * @brief This file contains all the functions prototypes for the VRTC firmware library. ****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __FM33A0XXEV_VRTC_H #define __FM33A0XXEV_VRTC_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include "FM33A0XXEV.h" #define HXVAR(object, addr) (*((object *) (addr))) #define const_rcmf_Trim HXVAR( uint32_t, 0x1FFFFB44 ) //RCMF 2MHzµ÷Уֵ #define const_rclp_Trim HXVAR( uint32_t, 0x1FFFFB20 ) //RCLPµ÷Уֵ #define VRTC_PDRCR_CFG_Pos 0 /* VRTCµçÔ´ÓòÏÂPDRÅäÖÃ*/ #define VRTC_PDRCR_CFG_Msk (0x1U << VRTC_PDRCR_CFG_Pos) /*0£º¹Ø±ÕRCMF 1£ºÊ¹ÄÜRCMF ¡¾×¢¡¿µ±Ê¹ÄÜÁËRTC×Ô¶¯Î²¹ºó£¬RCMFÊÜÓ²¼þ¿ØÖÆ×ÔÐÐÆô¶¯ºÍ¹Ø±Õ */ #define VRTC_RCMFCR_EN_Msk (0x1U << VRTC_RCMFCR_EN_Pos) /* ¹Ø±ÕRCMF */ /* ʹÄÜRCMF */ #define VRTC_RCMFCR_EN_Pos 7 /* RCMFʹÄܼĴæÆ÷ 0£º¹Ø±ÕRCMF 1£ºÊ¹ÄÜRCMF ¡¾×¢¡¿µ±Ê¹ÄÜÁËRTC×Ô¶¯Î²¹ºó£¬RCMFÊÜÓ²¼þ¿ØÖÆ×ÔÐÐÆô¶¯ºÍ¹Ø±Õ */ #define VRTC_RCMFCR_EN_Msk (0x1U << VRTC_RCMFCR_EN_Pos) /* ¹Ø±ÕRCMF */ /* ʹÄÜRCMF */ #define VRTC_RCMFCR_TRIM_Pos 0 /* RCMFƵÂʵ÷У¼Ä´æÆ÷ */ #define VRTC_RCMFCR_TRIM_Msk (0x3fU << VRTC_RCMFCR_TRIM_Pos) #define VRTC_RCLPCR_CHOPEN_Pos 1 /* ChopperʹÄÜ */ #define VRTC_RCLPCR_CHOPEN_Msk (0x1U << VRTC_RCLPCR_CHOPEN_Pos) #define VRTC_RCLPCR_RCLP_OFF_Pos 0 /* RCLPʹÄÜÐźŠ0£ºÊ¹ÄÜRCLP 1£º¹Ø±ÕRCLP ¡¾×¢¡¿XTLFÒ쳣ͣÕñʱ£¬×Ô¶¯Ê¹ÄÜRCLP */ #define VRTC_RCLPCR_RCLP_OFF_Msk (0x1U << VRTC_RCLPCR_RCLP_OFF_Pos) /* ʹÄÜRCLP */ /* ¹Ø±ÕRCLP */ #define VRTC_RCLPTR_RCLP_TRIM_Pos 0 /* RCLPµ÷Уֵ¼Ä´æÆ÷ 0000 0000£ºÆµÂÊ×îµÍ 1111 1111£ºÆµÂÊ×î¸ß */ #define VRTC_RCLPTR_RCLP_TRIM_Msk (0xffU << VRTC_RCLPTR_RCLP_TRIM_Pos) #define VRTC_XTLFCR_XTLFIPW_Pos 0 #define VRTC_XTLFCR_XTLFIPW_Msk (0xfU << VRTC_XTLFCR_XTLFIPW_Pos) #define VRTC_XTLFCR_XTLFIPW_850NA (0x0U << VRTC_XTLFCR_XTLFIPW_Pos) #define VRTC_XTLFCR_XTLFIPW_800NA (0x1U << VRTC_XTLFCR_XTLFIPW_Pos) #define VRTC_XTLFCR_XTLFIPW_750NA (0x2U << VRTC_XTLFCR_XTLFIPW_Pos) #define VRTC_XTLFCR_XTLFIPW_700NA (0x3U << VRTC_XTLFCR_XTLFIPW_Pos) #define VRTC_XTLFCR_XTLFIPW_650NA (0x4U << VRTC_XTLFCR_XTLFIPW_Pos) #define VRTC_XTLFCR_XTLFIPW_600NA (0x5U << VRTC_XTLFCR_XTLFIPW_Pos) #define VRTC_XTLFCR_XTLFIPW_550NA (0x6U << VRTC_XTLFCR_XTLFIPW_Pos) #define VRTC_XTLFCR_XTLFIPW_500NA (0x7U << VRTC_XTLFCR_XTLFIPW_Pos) #define VRTC_XTLFCR_XTLFIPW_450NA (0x8U << VRTC_XTLFCR_XTLFIPW_Pos) #define VRTC_XTLFCR_XTLFIPW_400NA (0x9U << VRTC_XTLFCR_XTLFIPW_Pos) #define VRTC_XTLFCR_XTLFIPW_350NA (0xaU << VRTC_XTLFCR_XTLFIPW_Pos) #define VRTC_XTLFCR_XTLFIPW_300NA (0xbU << VRTC_XTLFCR_XTLFIPW_Pos) #define VRTC_XTLFCR_XTLFIPW_250NA (0xcU << VRTC_XTLFCR_XTLFIPW_Pos) #define VRTC_XTLFCR_XTLFIPW_200NA (0xdU << VRTC_XTLFCR_XTLFIPW_Pos) #define VRTC_XTLFCR_XTLFIPW_150NA (0xeU << VRTC_XTLFCR_XTLFIPW_Pos) #define VRTC_XTLFCR_XTLFIPW_100NA (0xfU << VRTC_XTLFCR_XTLFIPW_Pos) #define VRTC_ADCCR_CKS_Pos 1 /* ADC¹¤×÷ʱÖÓÑ¡Ôñ¼Ä´æÆ÷ 000£ºRCMF 001£ºRCMF/2 010£ºRCMF/4 011£ºRCMF/8 100£ºRCMF/16 101£ºRCMF/32 110£ºRCLP 111£ºXTLF */ #define VRTC_ADCCR_CKS_Msk (0x7U << VRTC_ADCCR_CKS_Pos) #define VRTC_ADCCR_CKS_RCMF (0x0U << VRTC_ADCCR_CKS_Pos) /* RCMF */ #define VRTC_ADCCR_CKS_RCMF_2 (0x1U << VRTC_ADCCR_CKS_Pos) /* RCMF/2 */ #define VRTC_ADCCR_CKS_RCMF_4 (0x2U << VRTC_ADCCR_CKS_Pos) /* RCMF/4 */ #define VRTC_ADCCR_CKS_RCMF_8 (0x3U << VRTC_ADCCR_CKS_Pos) /* RCMF/8 */ #define VRTC_ADCCR_CKS_RCMF_16 (0x4U << VRTC_ADCCR_CKS_Pos) /* RCMF/16 */ #define VRTC_ADCCR_CKS_RCMF_32 (0x5U << VRTC_ADCCR_CKS_Pos) /* RCMF/32 */ #define VRTC_ADCCR_CKS_RCLP (0x6U << VRTC_ADCCR_CKS_Pos) /* RCLP */ #define VRTC_ADCCR_CKS_XTLF (0x7U << VRTC_ADCCR_CKS_Pos) /* XTLF */ #define VRTC_ADCCR_CKE_Pos 0 /* ADC¹¤×÷ʱÖÓʹÄÜ 0£º¹Ø±ÕADC¹¤×÷ʱÖÓ 1£ºÊ¹ÄÜADC¹¤×÷ʱÖÓ */ #define VRTC_ADCCR_CKE_Msk (0x1U << VRTC_ADCCR_CKE_Pos) /* ¹Ø±ÕADC¹¤×÷ʱÖÓ */ /* ʹÄÜADC¹¤×÷ʱÖÓ */ #define VRTC_LFDIER_LFDET_IE_Pos 0 /* XTLFµÍƵ¼ì²â±¨¾¯ÖжÏʹÄÜ£¬1ÓÐЧ */ #define VRTC_LFDIER_LFDET_IE_Msk (0x1U << VRTC_LFDIER_LFDET_IE_Pos) #define VRTC_LFDISR_LFDETO_Pos 1 /* µÍƵͣÕñ¼ì²â״̬Êä³ö 1£ºXTLFÕý³£ 0£ºXTLFÍ£Õñ */ #define VRTC_LFDISR_LFDETO_Msk (0x1U << VRTC_LFDISR_LFDETO_Pos) #define VRTC_LFDISR_LFDET_IF_Pos 0 /* µÍƵͣÕñ¼ì²âÖжϱêÖ¾¼Ä´æÆ÷£¬XTLFÍ£ÕñʱӲ¼þÒì²½ÖÃ룬Èí¼þд1ÇåÁ㣻ֻÓÐÔÚLFDETO²»Îª0µÄÇé¿öϲÅÄܹ»Çå³ý´Ë¼Ä´æÆ÷ */ #define VRTC_LFDISR_LFDET_IF_Msk (0x1U << VRTC_LFDISR_LFDET_IF_Pos) //Macro_End /* Exported functions --------------------------------------------------------*/ extern void VRTC_Deinit(void); /* RCMFʹÄܼĴæÆ÷ 0£º¹Ø±ÕRCMF 1£ºÊ¹ÄÜRCMF ¡¾×¢¡¿µ±Ê¹ÄÜÁËRTC×Ô¶¯Î²¹ºó£¬RCMFÊÜÓ²¼þ¿ØÖÆ×ÔÐÐÆô¶¯ºÍ¹Ø±Õ Ïà¹Øº¯Êý */ extern void VRTC_RCMFCR_EN_Setable(FunState NewState); extern FunState VRTC_RCMFCR_EN_Getable(void); /* RCMFƵÂʵ÷У¼Ä´æÆ÷ Ïà¹Øº¯Êý */ extern void VRTC_RCMFCR_TRIM_Set(uint32_t SetValue); extern uint32_t VRTC_RCMFCR_TRIM_Get(void); /* ChopperʹÄÜ Ïà¹Øº¯Êý */ extern void VRTC_RCLPCR_CHOPEN_Setable(FunState NewState); extern FunState VRTC_RCLPCR_CHOPEN_Getable(void); /* RCLPʹÄÜÐźŠ0£ºÊ¹ÄÜRCLP 1£º¹Ø±ÕRCLP ¡¾×¢¡¿XTLFÒ쳣ͣÕñʱ£¬×Ô¶¯Ê¹ÄÜRCLP Ïà¹Øº¯Êý */ extern void VRTC_RCLPCR_RCLP_OFF_Setable(FunState NewState); extern FunState VRTC_RCLPCR_RCLP_OFF_Getable(void); /* RCLPµ÷Уֵ¼Ä´æÆ÷ 0000 0000£ºÆµÂÊ×îµÍ 1111 1111£ºÆµÂÊ×î¸ß Ïà¹Øº¯Êý */ extern void VRTC_RCLPTR_Write(uint32_t SetValue); extern uint32_t VRTC_RCLPTR_Read(void); /* rclpÐ£×¼ÖµÔØÈ뺯Êý ¹¦ÄÜ:rclpÐ£×¼ÖµÔØÈë ÊäÈ룺ҪÉèÖõÄRLPƵÂÊ */ extern void VRTC_Init_RCLP_Trim(void); extern void VRTC_XTLFCR_XTLFIPW_Set(uint32_t SetValue); extern uint32_t VRTC_XTLFCR_XTLFIPW_Get(void); /* ADC¹¤×÷ʱÖÓÑ¡Ôñ¼Ä´æÆ÷ 000£ºRCMF 001£ºRCMF/2 010£ºRCMF/4 011£ºRCMF/8 100£ºRCMF/16 101£ºRCMF/32 110£ºRCLP 111£ºXTLF Ïà¹Øº¯Êý */ extern void VRTC_ADCCR_CKS_Set(uint32_t SetValue); extern uint32_t VRTC_ADCCR_CKS_Get(void); /* ADC¹¤×÷ʱÖÓʹÄÜ 0£º¹Ø±ÕADC¹¤×÷ʱÖÓ 1£ºÊ¹ÄÜADC¹¤×÷ʱÖÓ Ïà¹Øº¯Êý */ extern void VRTC_ADCCR_CKE_Setable(FunState NewState); extern FunState VRTC_ADCCR_CKE_Getable(void); /* XTLFµÍƵ¼ì²â±¨¾¯ÖжÏʹÄÜ£¬1ÓÐЧ Ïà¹Øº¯Êý */ extern void VRTC_LFDIER_LFDET_IE_Setable(FunState NewState); extern FunState VRTC_LFDIER_LFDET_IE_Getable(void); /* µÍƵͣÕñ¼ì²â״̬Êä³ö 1£ºXTLFÕý³£ 0£ºXTLFÍ£Õñ Ïà¹Øº¯Êý */ extern FlagStatus VRTC_LFDISR_LFDETO_Chk(void); /* µÍƵͣÕñ¼ì²âÖжϱêÖ¾¼Ä´æÆ÷£¬XTLFÍ£ÕñʱӲ¼þÒì²½ÖÃ룬Èí¼þд1ÇåÁ㣻ֻÓÐÔÚLFDETO²»Îª0µÄÇé¿öϲÅÄܹ»Çå³ý´Ë¼Ä´æÆ÷ Ïà¹Øº¯Êý */ extern void VRTC_LFDISR_LFDET_IF_Clr(void); extern FlagStatus VRTC_LFDISR_LFDET_IF_Chk(void); extern void VRTC_Init_RCMF_Trim(void); //Announce_End #ifdef __cplusplus } #endif #endif /* __FM33A0XXEV_VRTC_H */