/** ****************************************************************************** * @file fm33a0xxev_wwdt.h * @author FM33A0XXEV Application Team * @version V1.0.0 * @date 16-April-2020 * @brief This file contains all the functions prototypes for the WWDT firmware library. ****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __FM33A0XXEV_WWDT_H #define __FM33A0XXEV_WWDT_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include "FM33A0XXEV.h" #define WWDT_CR_CON_Pos 0 /* µ±CPUÏò´ËµØÖ·Ð´Èë0x5AʱÆô¶¯WWDT¶¨Ê±Æ÷ (WWDT Control,write only) ÔÚÆô¶¯WWDTºó£¬µ±CPUÏò´ËµØÖ·Ð´Èë0xACʱÇåÁã¼ÆÊýÆ÷ */ #define WWDT_CR_CON_Msk (0xffU << WWDT_CR_CON_Pos) #define WWDT_CFGR_CFG_Pos 0 /* ÅäÖÃWWDT¿´ÃŹ·Òç³öʱ¼ä£¬¸´Î»Öµ011£¬ÓÉÓÚÉϵçºóϵͳʱÖÓĬÈÏΪ8Mhz£¬ËùÒÔĬÈÏÒç³öÖÜÆÚ´óÔ¼32ms (WWDT Config) 000£ºTPCLK * 4096 * 1 001£ºTPCLK * 4096 * 4 010£ºTPCLK * 4096 * 16 011£ºTPCLK * 4096 * 64 100£ºTPCLK * 4096 * 128 101£ºTPCLK * 4096 * 256 110£ºTPCLK * 4096 * 512 111£ºTPCLK * 4096 * 1024 */ #define WWDT_CFGR_CFG_Msk (0x7U << WWDT_CFGR_CFG_Pos) #define WWDT_CNTR_CNT_Pos 0 /* WWDT¼ÆÊý¼Ä´æÆ÷Öµ£¬Èí¼þ¿Éͨ¹ý²éѯ´Ë¼Ä´æÆ÷Á˽âWWDT¼ÆÊ±½ø¶È (WWDT Counter value,read only) */ #define WWDT_CNTR_CNT_Msk (0x3ffU << WWDT_CNTR_CNT_Pos) #define WWDT_IER_IE_Pos 0 /* WWDTÖжÏʹÄÜ (WWDT Interrupt Enable) 0£ºÖжÏʹÄܽûÖ¹ 1£ºÖжÏʹÄÜ´ò¿ª */ #define WWDT_IER_IE_Msk (0x1U << WWDT_IER_IE_Pos) /* ÖжÏʹÄܽûÖ¹ */ /* ÖжÏʹÄÜ´ò¿ª */ #define WWDT_ISR_NOVF_Pos 0 /* WWDT 75%¼ÆÊ±ÖжϱêÖ¾£¬Ð´1ÇåÁã (Near Overflow Flag,write 1 to clear) 0£ºÎÞÖжϲúÉú 1£ºÖжϱêÖ¾ÖÃλ Èç¹ûIE=1£¬Ôò´Ë¼Ä´æÆ÷ÖÃ뽫´¥·¢ÖÐ¶Ï */ #define WWDT_ISR_NOVF_Msk (0x1U << WWDT_ISR_NOVF_Pos) #define WWDT_PSCR_DIV_CNT_Pos 0 /* WWDTµÄ4096Ô¤·ÖƵ¼ÆÊýÆ÷µ±Ç°¼ÆÊýÖµ£¬Ö»¶Á (WWDT prescaler Divider Counte,read only) */ #define WWDT_PSCR_DIV_CNT_Msk (0xfffU << WWDT_PSCR_DIV_CNT_Pos) //Macro_End /* Exported functions --------------------------------------------------------*/ extern void WWDT_Deinit(void); /* µ±CPUÏò´ËµØÖ·Ð´Èë0x5AʱÆô¶¯WWDT¶¨Ê±Æ÷ (WWDT Control,write only) ÔÚÆô¶¯WWDTºó£¬µ±CPUÏò´ËµØÖ·Ð´Èë0xACʱÇåÁã¼ÆÊýÆ÷ Ïà¹Øº¯Êý */ extern void WWDT_CR_Write(uint32_t SetValue); /* ÅäÖÃWWDT¿´ÃŹ·Òç³öʱ¼ä£¬¸´Î»Öµ011£¬ÓÉÓÚÉϵçºóϵͳʱÖÓĬÈÏΪ8Mhz£¬ËùÒÔĬÈÏÒç³öÖÜÆÚ´óÔ¼32ms (WWDT Config) 000£ºTPCLK * 4096 * 1 001£ºTPCLK * 4096 * 4 010£ºTPCLK * 4096 * 16 011£ºTPCLK * 4096 * 64 100£ºTPCLK * 4096 * 128 101£ºTPCLK * 4096 * 256 110£ºTPCLK * 4096 * 512 111£ºTPCLK * 4096 * 1024 Ïà¹Øº¯Êý */ extern void WWDT_CFGR_Write(uint32_t SetValue); extern uint32_t WWDT_CFGR_Read(void); /* WWDT¼ÆÊý¼Ä´æÆ÷Öµ£¬Èí¼þ¿Éͨ¹ý²éѯ´Ë¼Ä´æÆ÷Á˽âWWDT¼ÆÊ±½ø¶È (WWDT Counter value,read only) Ïà¹Øº¯Êý */ extern uint32_t WWDT_CNTR_Read(void); /* WWDTÖжÏʹÄÜ (WWDT Interrupt Enable) 0£ºÖжÏʹÄܽûÖ¹ 1£ºÖжÏʹÄÜ´ò¿ª Ïà¹Øº¯Êý */ extern void WWDT_IER_IE_Setable(FunState NewState); extern FunState WWDT_IER_IE_Getable(void); /* WWDT 75%¼ÆÊ±ÖжϱêÖ¾£¬Ð´1ÇåÁã (Near Overflow Flag,write 1 to clear) 0£ºÎÞÖжϲúÉú 1£ºÖжϱêÖ¾ÖÃλ Èç¹ûIE=1£¬Ôò´Ë¼Ä´æÆ÷ÖÃ뽫´¥·¢ÖÐ¶Ï Ïà¹Øº¯Êý */ extern void WWDT_ISR_NOVF_Clr(void); extern FlagStatus WWDT_ISR_NOVF_Chk(void); /* WWDTµÄ4096Ô¤·ÖƵ¼ÆÊýÆ÷µ±Ç°¼ÆÊýÖµ£¬Ö»¶Á (WWDT prescaler Divider Counte,read only) Ïà¹Øº¯Êý */ extern uint32_t WWDT_PSCR_Read(void); //Announce_End #ifdef __cplusplus } #endif #endif /* __FM33A0XXEV_WWDT_H */