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