128 lines
5.4 KiB
C
128 lines
5.4 KiB
C
|
|
/*******************************************************************************
|
|||
|
|
*
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
* <EFBFBD>人<EFBFBD><EFBFBD>Դ<EFBFBD>뵼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><EFBFBD>̴<EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>ר<EFBFBD><EFBFBD><EFBFBD>İ<EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɴ<EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƹ<EFBFBD><EFBFBD>ܡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><EFBFBD>ܱ<EFBFBD><EFBFBD>ų<EFBFBD><EFBFBD><EFBFBD><EFBFBD>κη<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD>人<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ӧ<EFBFBD>̶Գ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṩ<EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD>;<EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD>ı<EFBFBD>֤
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD>ۺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD><EFBFBD>人<EFBFBD><EFBFBD>Դ<EFBFBD>뵼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>̾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֪<EFBFBD>䷢<EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĶ<EFBFBD>ʧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ӵġ<EFBFBD><EFBFBD>ر<EFBFBD><EFBFBD>ġ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>롢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ڿɽ<EFBFBD>ʡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>
|
|||
|
|
* ijЩ˾<EFBFBD><EFBFBD>Ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ӵġ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κε<EFBFBD><EFBFBD>ų<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ijЩ<EFBFBD><EFBFBD>
|
|||
|
|
* ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ų<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƿ<EFBFBD><EFBFBD>ܲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
*******************************************************************************/
|
|||
|
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
|||
|
|
#ifndef __CW32F030_IWDT_H
|
|||
|
|
#define __CW32F030_IWDT_H
|
|||
|
|
|
|||
|
|
#ifdef __cplusplus
|
|||
|
|
extern "C" {
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
/* Includes ------------------------------------------------------------------*/
|
|||
|
|
#include "cw32f030.h"
|
|||
|
|
|
|||
|
|
/******************************************************************************
|
|||
|
|
* type definitions ('typedef')
|
|||
|
|
******************************************************************************/
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
uint32_t IWDT_Prescaler; /* Ԥ<><D4A4><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>ȡֵ<C8A1><D6B5>Χ2<CEA7><32>n<EFBFBD><6E><EFBFBD>ݣ<EFBFBD>n=2,3..9 */
|
|||
|
|
|
|||
|
|
uint32_t IWDT_OverFlowAction; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD> */
|
|||
|
|
|
|||
|
|
FunctionalState IWDT_ITState; /* <20><><EFBFBD>Ź<EFBFBD><C5B9>ж<EFBFBD>״̬<D7B4><CCAC>ȡֵ<C8A1><D6B5>ΧENABLE<4C><45>DISABLE */
|
|||
|
|
|
|||
|
|
uint32_t IWDT_Pause; /* Deepsleepģʽ<C4A3><CABD>IWDT<44><54>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD> */
|
|||
|
|
|
|||
|
|
uint32_t IWDT_ReloadValue; /* <20><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ȡֵ<C8A1><D6B5>ΧС<CEA7>ڵ<EFBFBD><DAB5><EFBFBD>0x0FFF */
|
|||
|
|
|
|||
|
|
uint32_t IWDT_WindowValue; /* <20><><EFBFBD>ڱȽ<DAB1><C8BD><EFBFBD><EFBFBD>Ƚ<EFBFBD>ֵ,ȡֵ<C8A1><D6B5>ΧС<CEA7>ڵ<EFBFBD><DAB5><EFBFBD>0x0FFF */
|
|||
|
|
} IWDT_InitTypeDef;
|
|||
|
|
/******************************************************************************
|
|||
|
|
* pre-processor symbols/macros ('#define')
|
|||
|
|
******************************************************************************/
|
|||
|
|
#define IWDT_FREQ 10000UL
|
|||
|
|
|
|||
|
|
#define IWDT_Prescaler_DIV4 ((uint32_t)0x00000000)
|
|||
|
|
#define IWDT_Prescaler_DIV8 ((uint32_t)0x00000001)
|
|||
|
|
#define IWDT_Prescaler_DIV16 ((uint32_t)0x00000002)
|
|||
|
|
#define IWDT_Prescaler_DIV32 ((uint32_t)0x00000003)
|
|||
|
|
#define IWDT_Prescaler_DIV64 ((uint32_t)0x00000004)
|
|||
|
|
#define IWDT_Prescaler_DIV128 ((uint32_t)0x00000005)
|
|||
|
|
#define IWDT_Prescaler_DIV256 ((uint32_t)0x00000006)
|
|||
|
|
#define IWDT_Prescaler_DIV512 ((uint32_t)0x00000007)
|
|||
|
|
#define IS_IWDT_PRESCALER(PRESCALER) (((PRESCALER) == IWDT_Prescaler_DIV4) ||\
|
|||
|
|
((PRESCALER) == IWDT_Prescaler_DIV8) ||\
|
|||
|
|
((PRESCALER) == IWDT_Prescaler_DIV16) ||\
|
|||
|
|
((PRESCALER) == IWDT_Prescaler_DIV32) ||\
|
|||
|
|
((PRESCALER) == IWDT_Prescaler_DIV64) ||\
|
|||
|
|
((PRESCALER) == IWDT_Prescaler_DIV128) ||\
|
|||
|
|
((PRESCALER) == IWDT_Prescaler_DIV512))
|
|||
|
|
#define IS_IWDT_WINDOW_VALUE(VALUE) ((VALUE) <= 0xFFF)
|
|||
|
|
#define IS_IWDT_RELOAD(COUNTER) ((COUNTER) <= 0xFFF)
|
|||
|
|
|
|||
|
|
#define IWDT_UNLOCK_KEY 0x5555
|
|||
|
|
#define IWDT_LOCK_KEY 0x6666
|
|||
|
|
#define IWDT_RUN_KEY 0xCCCC
|
|||
|
|
#define IWDT_REFRESH_KEY 0xAAAA
|
|||
|
|
#define IWDT_STOP_KEY1 0x5A5A
|
|||
|
|
#define IWDT_STOP_KEY2 0xA5A5
|
|||
|
|
|
|||
|
|
#define IWDT_OVERFLOW_ACTION_RESET 0
|
|||
|
|
#define IWDT_OVERFLOW_ACTION_INT IWDT_CR_ACTION_Msk
|
|||
|
|
#define IS_IWDT_ACTION(ACTION) ((ACTION) == IWDT_OVERFLOW_ACTION_RESET || \
|
|||
|
|
(ACTION) == IWDT_OVERFLOW_ACTION_INT)
|
|||
|
|
#define IWDT_SLEEP_PAUSE IWDT_CR_PAUSE_Msk
|
|||
|
|
#define IWDT_SLEEP_CONTINUE 0
|
|||
|
|
#define IS_IWDT_SLEEP_MODE(MODE) ((MODE) == IWDT_SLEEP_PAUSE || \
|
|||
|
|
(MODE) == IWDT_SLEEP_CONTINUE)
|
|||
|
|
|
|||
|
|
#define __IWDT_RUN() (CW_IWDT->KR = IWDT_RUN_KEY)
|
|||
|
|
#define __IWDT_REFRESH() (CW_IWDT->KR = IWDT_REFRESH_KEY)
|
|||
|
|
#define __IWDT_STOP() do{ \
|
|||
|
|
CW_IWDT->KR = IWDT_STOP_KEY1;\
|
|||
|
|
CW_IWDT->KR = IWDT_STOP_KEY2;\
|
|||
|
|
} while(0)
|
|||
|
|
#define __IWDT_UNLOCK() (CW_IWDT->KR = IWDT_UNLOCK_KEY)
|
|||
|
|
#define __IWDT_LOCK() (CW_IWDT->KR = IWDT_LOCK_KEY)
|
|||
|
|
|
|||
|
|
|
|||
|
|
/******************************************************************************
|
|||
|
|
* Global variable definitions (declared in header file with 'extern')
|
|||
|
|
******************************************************************************/
|
|||
|
|
|
|||
|
|
|
|||
|
|
/******************************************************************************
|
|||
|
|
* Global function prototypes
|
|||
|
|
******************************************************************************/
|
|||
|
|
void IWDT_DeInit(void);
|
|||
|
|
void IWDT_Init(IWDT_InitTypeDef *IWDT_InitStruct);
|
|||
|
|
|
|||
|
|
void IWDT_Cmd(void);
|
|||
|
|
void IWDT_Refresh(void);
|
|||
|
|
|
|||
|
|
void IWDT_Unlock(void);
|
|||
|
|
void IWDT_Lock(void);
|
|||
|
|
void IWDT_Stop(void);
|
|||
|
|
|
|||
|
|
void IWDT_SetPrescaler(uint32_t WWDT_Prescaler);
|
|||
|
|
void IWDT_SetWindowValue(uint32_t WindowValue);
|
|||
|
|
void IWDT_SetReloadValue(uint32_t ReloadValue);
|
|||
|
|
void IWDT_ITConfig(FunctionalState NewState);
|
|||
|
|
FlagStatus IWDT_GetFlagStatus(uint32_t StatusBit);
|
|||
|
|
void IWDT_ClearOVFlag(void);
|
|||
|
|
uint32_t IWDT_GetCounterValue(void);
|
|||
|
|
|
|||
|
|
#ifdef __cplusplus
|
|||
|
|
}
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#endif /*__CW32F030_IWDT_H */
|
|||
|
|
/**
|
|||
|
|
* @}
|
|||
|
|
*/
|