forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-04-23 678cda82efa03c875db392b738943f30812f0d55
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
/**
  ******************************************************************************
  * @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 */