forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-06-12 f03cf3ae7a36954e64fc014e6bb7afd20c5a5247
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/**
  ******************************************************************************
  * @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 */