/**
|
******************************************************************************
|
* @file fm33a0xxev_wwdt.c
|
* @author FM33A0XXEV Application Team
|
* @version V1.0.0
|
* @date 16-April-2020
|
* @brief This file provides firmware functions to manage the following
|
* functionalities of....:
|
*
|
*/
|
|
/* Includes ------------------------------------------------------------------*/
|
|
#include "fm33a0xxev_wwdt.h"
|
|
/** @addtogroup fm33a0xxev_StdPeriph_Driver
|
* @{
|
*/
|
|
/** @defgroup WWDT
|
* @brief WWDT driver modules
|
* @{
|
*/
|
|
/* µ±CPUÏò´ËµØÖ·Ð´Èë0x5AʱÆô¶¯WWDT¶¨Ê±Æ÷ (WWDT Control,write only)
|
ÔÚÆô¶¯WWDTºó£¬µ±CPUÏò´ËµØÖ·Ð´Èë0xACʱÇåÁã¼ÆÊýÆ÷ Ïà¹Øº¯Êý */
|
void WWDT_CR_Write(uint32_t SetValue)
|
{
|
WWDT->CR = (SetValue & WWDT_CR_CON_Msk);
|
}
|
|
/* ÅäÖÃ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 Ïà¹Øº¯Êý */
|
void WWDT_CFGR_Write(uint32_t SetValue)
|
{
|
WWDT->CFGR = (SetValue & WWDT_CFGR_CFG_Msk);
|
}
|
|
uint32_t WWDT_CFGR_Read(void)
|
{
|
return (WWDT->CFGR & WWDT_CFGR_CFG_Msk);
|
}
|
|
/* WWDT¼ÆÊý¼Ä´æÆ÷Öµ£¬Èí¼þ¿Éͨ¹ý²éѯ´Ë¼Ä´æÆ÷Á˽âWWDT¼ÆÊ±½ø¶È (WWDT Counter value,read only) Ïà¹Øº¯Êý */
|
uint32_t WWDT_CNTR_Read(void)
|
{
|
return (WWDT->CNTR & WWDT_CNTR_CNT_Msk);
|
}
|
|
/* WWDTÖжÏʹÄÜ (WWDT Interrupt Enable)
|
0£ºÖжÏʹÄܽûÖ¹
|
1£ºÖжÏʹÄÜ´ò¿ª Ïà¹Øº¯Êý */
|
void WWDT_IER_IE_Setable(FunState NewState)
|
{
|
if (NewState == ENABLE)
|
{
|
WWDT->IER |= (WWDT_IER_IE_Msk);
|
}
|
else
|
{
|
WWDT->IER &= ~(WWDT_IER_IE_Msk);
|
}
|
}
|
|
FunState WWDT_IER_IE_Getable(void)
|
{
|
if (WWDT->IER & (WWDT_IER_IE_Msk))
|
{
|
return ENABLE;
|
}
|
else
|
{
|
return DISABLE;
|
}
|
}
|
|
/* WWDT 75%¼ÆÊ±ÖжϱêÖ¾£¬Ð´1ÇåÁã (Near Overflow Flag,write 1 to clear)
|
0£ºÎÞÖжϲúÉú
|
1£ºÖжϱêÖ¾ÖÃλ
|
Èç¹ûIE=1£¬Ôò´Ë¼Ä´æÆ÷ÖÃ뽫´¥·¢ÖÐ¶Ï Ïà¹Øº¯Êý */
|
void WWDT_ISR_NOVF_Clr(void)
|
{
|
WWDT->ISR = WWDT_ISR_NOVF_Msk;
|
}
|
|
FlagStatus WWDT_ISR_NOVF_Chk(void)
|
{
|
if (WWDT->ISR & WWDT_ISR_NOVF_Msk)
|
{
|
return SET;
|
}
|
else
|
{
|
return RESET;
|
}
|
}
|
|
/* WWDTµÄ4096Ô¤·ÖƵ¼ÆÊýÆ÷µ±Ç°¼ÆÊýÖµ£¬Ö»¶Á (WWDT prescaler Divider Counte,read only) Ïà¹Øº¯Êý */
|
uint32_t WWDT_PSCR_Read(void)
|
{
|
return (WWDT->PSCR & WWDT_PSCR_DIV_CNT_Msk);
|
}
|
|
|
void WWDT_Deinit(void)
|
{
|
//WWDT->CR = 0x00000000;
|
//WWDT->CFGR = 0x00000003;
|
//WWDT->CNTR = 0x00000000;
|
//WWDT->IER = 0x00000000;
|
//WWDT->ISR = 0x00000000;
|
//WWDT->PSCR = 0x00000000;
|
}
|
|
/******END OF FILE****/
|