forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-05-13 29651cb059e56969ed845b045ab46505c89dc0c5
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
/**
  ******************************************************************************
  * @file    fm33a0xxev_bstim.h
  * @author  FM33A0XXEV Application Team
  * @version V1.0.0
  * @date    16-April-2020
  * @brief   This file contains all the functions prototypes for the BSTIM firmware library.  
  ******************************************************************************
  */
  
/* Define to prevent recursive inclusion -------------------------------------*/
 
#ifndef __FM33A0XXEV_BSTIM_H
#define __FM33A0XXEV_BSTIM_H
 
 
#ifdef __cplusplus
 extern "C" {
#endif
 
/* Includes ------------------------------------------------------------------*/
 
#include "FM33A0XXEV.h" 
   
#define    BSTIM_CR1_ARPE_Pos    7    /* Auto-reloadÔ¤×°ÔØÊ¹ÄÜ (Auto-Reload Preload Enable)
0£ºARR¼Ä´æÆ÷²»Ê¹ÄÜpreload
1£ºARR¼Ä´æÆ÷ʹÄÜpreload */
#define    BSTIM_CR1_ARPE_Msk    (0x1U << BSTIM_CR1_ARPE_Pos)
    /* ARR¼Ä´æÆ÷²»Ê¹ÄÜpreload */
    /* ARR¼Ä´æÆ÷ʹÄÜpreload */
 
#define    BSTIM_CR1_OPM_Pos    3    /* µ¥Âö³åÊä³öģʽ (One Pulse Mode)
0£ºUpdate Event·¢Éúʱ¼ÆÊýÆ÷²»Í£Ö¹
1£ºUpdate Event·¢Éúʱ¼ÆÊýÆ÷Í£Ö¹£¨×Ô¶¯ÇåÁãCEN£© */
#define    BSTIM_CR1_OPM_Msk    (0x1U << BSTIM_CR1_OPM_Pos)
#define    BSTIM_CR1_OPM_CONTINUE    (0x0U << BSTIM_CR1_OPM_Pos)    /* Update Event·¢Éúʱ¼ÆÊýÆ÷²»Í£Ö¹ */
#define    BSTIM_CR1_OPM_STOP        (0x1U << BSTIM_CR1_OPM_Pos)    /* Update Event·¢Éúʱ¼ÆÊýÆ÷Í£Ö¹£¨×Ô¶¯ÇåÁãCEN£© */
 
#define    BSTIM_CR1_URS_Pos    2    /* ¸üÐÂÇëÇóÑ¡Ôñ (Update Request Select)
0£ºÒÔÏÂʼþÄܹ»²úÉúupdateÖжÏ
¼ÆÊýÆ÷ÉÏÒç³ö»òÏÂÒç³ö
Èí¼þÖÃλUG¼Ä´æÆ÷
´Ó»ú¿ØÖÆÆ÷²úÉúupdate
1£º½ö¼ÆÊýÆ÷ÉÏÒç³ö»òÏÂÒç³ö»á²úÉúupdateÖжϻòDMAÇëÇó */
#define    BSTIM_CR1_URS_Msk    (0x1U << BSTIM_CR1_URS_Pos)
#define    BSTIM_CR1_URS_ALL    (0x0U << BSTIM_CR1_URS_Pos)    /* ÒÔÏÂʼþÄܹ»²úÉúupdateÖжϠ*/
#define    BSTIM_CR1_URS_COUNT    (0x1U << BSTIM_CR1_URS_Pos)    /* ½ö¼ÆÊýÆ÷ÉÏÒç³ö»òÏÂÒç³ö»á²úÉúupdateÖжϻòDMAÇëÇó */
 
#define    BSTIM_CR1_UDIS_Pos    1    /* ½ûÖ¹update (Update Disable)
0£ºÊ¹ÄÜupdateʼþ£»ÒÔÏÂʼþ·¢Éúʱ²úÉúupdateʼþ
¼ÆÊýÆ÷ÉÏÒç³ö»òÏÂÒç³ö
Èí¼þÖÃλUG¼Ä´æÆ÷
´Ó»ú¿ØÖÆÆ÷²úÉúupdate
1£º½ûÖ¹updateʼþ£¬²»¸üÐÂshadow¼Ä´æÆ÷¡£µ±UGÖÃλ»ò´Ó»ú¿ØÖÆÆ÷ÊÕµ½Ó²¼þresetÊ±ÖØÐ³õʼ»¯¼ÆÊýÆ÷ºÍÔ¤·ÖƵÆ÷¡£ */
#define    BSTIM_CR1_UDIS_Msk    (0x1U << BSTIM_CR1_UDIS_Pos)
    /* Ê¹ÄÜupdateʼþ£»ÒÔÏÂʼþ·¢Éúʱ²úÉúupdateʼþ */
    /* ½ûÖ¹updateʼþ£¬²»¸üÐÂshadow¼Ä´æÆ÷¡£µ±UGÖÃλ»ò´Ó»ú¿ØÖÆÆ÷ÊÕµ½Ó²¼þresetÊ±ÖØÐ³õʼ»¯¼ÆÊýÆ÷ºÍÔ¤·ÖƵÆ÷¡£ */
 
#define    BSTIM_CR1_CEN_Pos    0    /* ¼ÆÊýÆ÷ʹÄÜ (Counter Enable)
0£º¼ÆÊýÆ÷¹Ø±Õ
1£º¼ÆÊýÆ÷ʹÄÜ
×¢Ò⣺Íⲿ´¥·¢Ä£Ê½¿ÉÒÔ×Ô¶¯ÖÃλCEN */
#define    BSTIM_CR1_CEN_Msk    (0x1U << BSTIM_CR1_CEN_Pos)
    /* ¼ÆÊýÆ÷¹Ø±Õ */
    /* ¼ÆÊýÆ÷ʹÄÜ */
    /* Íⲿ´¥·¢Ä£Ê½¿ÉÒÔ×Ô¶¯ÖÃλCEN */
 
#define    BSTIM_CR2_MMS_Pos    4    /* Ö÷»úģʽѡÔñ£¬ÓÃÓÚÅäÖÃÖ÷»úģʽÏÂÏò´Ó»ú·¢Ë͵Äͬ²½´¥·¢Ðźţ¨TRGO£©Ô´ (Master Mode Select)
000£ºBSTIM_EGRµÄUG¼Ä´æÆ÷±»ÓÃ×÷TRGO
001£º¼ÆÊýÆ÷ʹÄÜÐźÅCNT_EN±»ÓÃ×÷TRGO£¬¿ÉÓÃÓÚͬʱÆô¶¯¶à¸ö¶¨Ê±Æ÷
010£ºUE£¨update event£©Ðźű»ÓÃ×÷TRGO
011/100/111£ºRFU
 
×¢Ò⣺´Ó»ú¶¨Ê±Æ÷»òADC±ØÐëÊÂÏÈʹÄܹ¤×÷ʱÖÓ£¬²ÅÄܽÓÊÕÖ÷»ú¶¨Ê±Æ÷·¢Ë͵ÄTRGO */
#define    BSTIM_CR2_MMS_Msk    (0x7U << BSTIM_CR2_MMS_Pos)
 
#define    BSTIM_IER_UIE_Pos    0    /* UpdateʼþÖжÏʹÄÜ (Update event Interrupt Enable)
0£º½ûÖ¹UpdateʼþÖжÏ
1£ºÔÊÐíUpdateʼþÖжϠ*/
#define    BSTIM_IER_UIE_Msk    (0x1U << BSTIM_IER_UIE_Pos)
    /* ½ûÖ¹UpdateʼþÖжϠ*/
    /* ÔÊÐíUpdateʼþÖжϠ*/
 
#define    BSTIM_ISR_UIF_Pos    0    /* UpdateʼþÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þд1ÇåÁã¡£(Update event Interrupt Flag,write 1 to flag)
µ±ÒÔÏÂʼþ·¢Éúʱ£¬UIFÖÃ룬²¢¸üÐÂshadow¼Ä´æÆ÷
-ÖØ¸´¼ÆÊýÆ÷=0£¬²¢ÇÒUDIS=0µÄÇé¿öÏ£¬¼ÆÊýÆ÷·¢ÉúÒç³ö
-URS=0ÇÒUDIS=0µÄÇé¿öÏ£¬Èí¼þÖÃλUG¼Ä´æÆ÷³õʼ»¯¼ÆÊýÆ÷
-URS=0ÇÒUDIS=0µÄÇé¿öÏ£¬´¥·¢Ê¼þ³õʼ»¯¼ÆÊýÆ÷ */
#define    BSTIM_ISR_UIF_Msk    (0x1U << BSTIM_ISR_UIF_Pos)
 
#define    BSTIM_EGR_UG_Pos    0    /* Èí¼þUpdateʼþ£¬Èí¼þÖÃλ´Ë¼Ä´æÆ÷²úÉúUpdateʼþ£¬Ó²¼þ×Ô¶¯ÇåÁã (User Generate)
Èí¼þÖÃλUGʱ»áÖØÐ³õʼ»¯¼ÆÊýÆ÷²¢¸üÐÂshadow¼Ä´æÆ÷£¬Ô¤·ÖƵ¼ÆÊýÆ÷±»ÇåÁã¡£ */
#define    BSTIM_EGR_UG_Msk    (0x1U << BSTIM_EGR_UG_Pos)
 
#define    BSTIM_CNTR_CNT_Pos    0    /* ¼ÆÊýÆ÷Öµ (Counter) */
#define    BSTIM_CNTR_CNT_Msk    (0xffffffffU << BSTIM_CNTR_CNT_Pos)
 
#define    BSTIM_PSCR_PSC_Pos    0    /* ¼ÆÊýÆ÷ʱÖÓ£¨CK_CNT£©Ô¤·ÖƵֵ (Counter Clock Prescaler)
fCK_CNT=fCK_PSC/(PSC[15:0]+1)
ÕâÊÇÒ»¸öpreload¼Ä´æÆ÷£¬ÔÚupdateʼþ·¢ÉúʱÆäÄÚÈݱ»ÔØÈëshadow¼Ä´æÆ÷ */
#define    BSTIM_PSCR_PSC_Msk    (0xffffffffU << BSTIM_PSCR_PSC_Pos)
 
#define    BSTIM_ARR_ARR_Pos    0    /* ¼ÆÊýÒç³öʱµÄ×Ô¶¯ÖØÔØÖµ (Auto-Reload Register)
ÕâÊÇÒ»¸öpreload¼Ä´æÆ÷£¬ÔÚupdateʼþ·¢ÉúʱÆäÄÚÈݱ»ÔØÈëshadow¼Ä´æÆ÷ */
#define    BSTIM_ARR_ARR_Msk    (0xffffffffU << BSTIM_ARR_ARR_Pos)
//Macro_End
 
/* Exported functions --------------------------------------------------------*/ 
extern void BSTIM_Deinit(void);
 
/* Auto-reloadÔ¤×°ÔØÊ¹ÄÜ (Auto-Reload Preload Enable)
0£ºARR¼Ä´æÆ÷²»Ê¹ÄÜpreload
1£ºARR¼Ä´æÆ÷ʹÄÜpreload Ïà¹Øº¯Êý */
extern void BSTIM_CR1_ARPE_Setable(FunState NewState);
extern FunState BSTIM_CR1_ARPE_Getable(void);
 
/* µ¥Âö³åÊä³öģʽ (One Pulse Mode)
0£ºUpdate Event·¢Éúʱ¼ÆÊýÆ÷²»Í£Ö¹
1£ºUpdate Event·¢Éúʱ¼ÆÊýÆ÷Í£Ö¹£¨×Ô¶¯ÇåÁãCEN£© Ïà¹Øº¯Êý */
extern void BSTIM_CR1_OPM_Set(uint32_t SetValue);
extern uint32_t BSTIM_CR1_OPM_Get(void);
 
/* ¸üÐÂÇëÇóÑ¡Ôñ (Update Request Select)
0£ºÒÔÏÂʼþÄܹ»²úÉúupdateÖжÏ
¼ÆÊýÆ÷ÉÏÒç³ö»òÏÂÒç³ö
Èí¼þÖÃλUG¼Ä´æÆ÷
´Ó»ú¿ØÖÆÆ÷²úÉúupdate
1£º½ö¼ÆÊýÆ÷ÉÏÒç³ö»òÏÂÒç³ö»á²úÉúupdateÖжϻòDMAÇëÇó Ïà¹Øº¯Êý */
extern void BSTIM_CR1_URS_Set(uint32_t SetValue);
extern uint32_t BSTIM_CR1_URS_Get(void);
 
/* ½ûÖ¹update (Update Disable)
0£ºÊ¹ÄÜupdateʼþ£»ÒÔÏÂʼþ·¢Éúʱ²úÉúupdateʼþ
¼ÆÊýÆ÷ÉÏÒç³ö»òÏÂÒç³ö
Èí¼þÖÃλUG¼Ä´æÆ÷
´Ó»ú¿ØÖÆÆ÷²úÉúupdate
1£º½ûÖ¹updateʼþ£¬²»¸üÐÂshadow¼Ä´æÆ÷¡£µ±UGÖÃλ»ò´Ó»ú¿ØÖÆÆ÷ÊÕµ½Ó²¼þresetÊ±ÖØÐ³õʼ»¯¼ÆÊýÆ÷ºÍÔ¤·ÖƵÆ÷¡£ Ïà¹Øº¯Êý */
extern void BSTIM_CR1_UDIS_Setable(FunState NewState);
extern FunState BSTIM_CR1_UDIS_Getable(void);
 
/* ¼ÆÊýÆ÷ʹÄÜ (Counter Enable)
0£º¼ÆÊýÆ÷¹Ø±Õ
1£º¼ÆÊýÆ÷ʹÄÜ
×¢Ò⣺Íⲿ´¥·¢Ä£Ê½¿ÉÒÔ×Ô¶¯ÖÃλCEN Ïà¹Øº¯Êý */
extern void BSTIM_CR1_CEN_Setable(FunState NewState);
extern FunState BSTIM_CR1_CEN_Getable(void);
 
/* Ö÷»úģʽѡÔñ£¬ÓÃÓÚÅäÖÃÖ÷»úģʽÏÂÏò´Ó»ú·¢Ë͵Äͬ²½´¥·¢Ðźţ¨TRGO£©Ô´ (Master Mode Select)
000£ºBSTIM_EGRµÄUG¼Ä´æÆ÷±»ÓÃ×÷TRGO
001£º¼ÆÊýÆ÷ʹÄÜÐźÅCNT_EN±»ÓÃ×÷TRGO£¬¿ÉÓÃÓÚͬʱÆô¶¯¶à¸ö¶¨Ê±Æ÷
010£ºUE£¨update event£©Ðźű»ÓÃ×÷TRGO
011/100/111£ºRFU
 
×¢Ò⣺´Ó»ú¶¨Ê±Æ÷»òADC±ØÐëÊÂÏÈʹÄܹ¤×÷ʱÖÓ£¬²ÅÄܽÓÊÕÖ÷»ú¶¨Ê±Æ÷·¢Ë͵ÄTRGO Ïà¹Øº¯Êý */
extern void BSTIM_CR2_Write(uint32_t SetValue);
extern uint32_t BSTIM_CR2_Read(void);
 
/* UpdateʼþÖжÏʹÄÜ (Update event Interrupt Enable)
0£º½ûÖ¹UpdateʼþÖжÏ
1£ºÔÊÐíUpdateʼþÖжϠÏà¹Øº¯Êý */
extern void BSTIM_IER_UIE_Setable(FunState NewState);
extern FunState BSTIM_IER_UIE_Getable(void);
 
/* UpdateʼþÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þд1ÇåÁã¡£(Update event Interrupt Flag,write 1 to flag)
µ±ÒÔÏÂʼþ·¢Éúʱ£¬UIFÖÃ룬²¢¸üÐÂshadow¼Ä´æÆ÷
-ÖØ¸´¼ÆÊýÆ÷=0£¬²¢ÇÒUDIS=0µÄÇé¿öÏ£¬¼ÆÊýÆ÷·¢ÉúÒç³ö
-URS=0ÇÒUDIS=0µÄÇé¿öÏ£¬Èí¼þÖÃλUG¼Ä´æÆ÷³õʼ»¯¼ÆÊýÆ÷
-URS=0ÇÒUDIS=0µÄÇé¿öÏ£¬´¥·¢Ê¼þ³õʼ»¯¼ÆÊýÆ÷ Ïà¹Øº¯Êý */
extern void BSTIM_ISR_UIF_Clr(void);
extern FlagStatus BSTIM_ISR_UIF_Chk(void);
 
/* Èí¼þUpdateʼþ£¬Èí¼þÖÃλ´Ë¼Ä´æÆ÷²úÉúUpdateʼþ£¬Ó²¼þ×Ô¶¯ÇåÁã (User Generate)
Èí¼þÖÃλUGʱ»áÖØÐ³õʼ»¯¼ÆÊýÆ÷²¢¸üÐÂshadow¼Ä´æÆ÷£¬Ô¤·ÖƵ¼ÆÊýÆ÷±»ÇåÁã¡£ Ïà¹Øº¯Êý */
extern void BSTIM_EGR_UG_Setable(FunState NewState);
 
/* ¼ÆÊýÆ÷Öµ (Counter) Ïà¹Øº¯Êý */
extern void BSTIM_CNTR_Write(uint32_t SetValue);
extern uint32_t BSTIM_CNTR_Read(void);
 
/* ¼ÆÊýÆ÷ʱÖÓ£¨CK_CNT£©Ô¤·ÖƵֵ (Counter Clock Prescaler)
fCK_CNT=fCK_PSC/(PSC[15:0]+1)
ÕâÊÇÒ»¸öpreload¼Ä´æÆ÷£¬ÔÚupdateʼþ·¢ÉúʱÆäÄÚÈݱ»ÔØÈëshadow¼Ä´æÆ÷ Ïà¹Øº¯Êý */
extern void BSTIM_PSCR_Write(uint32_t SetValue);
extern uint32_t BSTIM_PSCR_Read(void);
 
/* ¼ÆÊýÒç³öʱµÄ×Ô¶¯ÖØÔØÖµ (Auto-Reload Register)
ÕâÊÇÒ»¸öpreload¼Ä´æÆ÷£¬ÔÚupdateʼþ·¢ÉúʱÆäÄÚÈݱ»ÔØÈëshadow¼Ä´æÆ÷ Ïà¹Øº¯Êý */
extern void BSTIM_ARR_Write(uint32_t SetValue);
extern uint32_t BSTIM_ARR_Read(void);
//Announce_End
#ifdef __cplusplus
}
#endif
 
#endif /* __FM33A0XXEV_BSTIM_H */