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