/**
|
******************************************************************************
|
* @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 */
|