You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

397 lines
16 KiB

4 years ago
  1. /*********************************************************
  2. *Copyright (C), 2015, Shanghai Eastsoft Microelectronics Co., Ltd.
  3. *: lib_timer.h
  4. * : AE Team
  5. * : V1.01
  6. * : 2021/06/09
  7. * : Timer模块库函数头文件
  8. * :
  9. 使
  10. **********************************************************/
  11. #ifndef __LIB_TIMER_H__
  12. #define __LIB_TIMER_H__
  13. #include <stdint.h>
  14. #include "ES8P5066.h"
  15. #include "type.h"
  16. #include "system_ES8P5066.h"
  17. /* 时钟源选择 */
  18. typedef enum
  19. {
  20. T16Nx_ClkS_PCLK = 0x0, /* 时钟源选择:内部PCLK */
  21. T16Nx_ClkS_CK0 = 0x1, /* 时钟源选择:外部CK0时钟输入 */
  22. T16Nx_ClkS_CK1 = 0x2, /* 时钟源选择:外部CK1时钟输入 */
  23. } T16Nx_TYPE_CLKS;
  24. /* 外部时钟计数边沿选择 */
  25. typedef enum
  26. {
  27. T16Nx_EDGE_Rise = 0x0, /* 外部时钟计数边沿选择:上升沿 */
  28. T16Nx_EDGE_Fall = 0x1, /* 外部时钟计数边沿选择:下降沿 */
  29. T16Nx_EDGE_All = 0x2, /* 外部时钟计数边沿选择:所有 */
  30. } T16Nx_TYPE_EDGE;
  31. /* 工作模式选择 */
  32. typedef enum
  33. {
  34. T16Nx_Mode_TC0 = 0x0, /* 工作模式:定时、计数模式 */
  35. T16Nx_Mode_TC1 = 0x1, /* 工作模式:定时、计数模式 */
  36. T16Nx_Mode_CAP = 0x2, /* 工作模式:捕捉模式 */
  37. T16Nx_Mode_PWM = 0x3, /* 工作模式:调制模式 */
  38. } T16Nx_TYPE_MODE;
  39. /* T16Nx初始化配置结构体定义 */
  40. typedef struct
  41. {
  42. T16Nx_TYPE_CLKS T16Nx_ClkS; /* 时钟源选择 */
  43. TYPE_FUNCEN T16Nx_SYNC; /* 外部时钟同步 */
  44. T16Nx_TYPE_EDGE T16Nx_EDGE; /* 外部时钟计数边沿选择 */
  45. T16Nx_TYPE_MODE T16Nx_Mode; /* 工作模式选择 */
  46. unsigned int T16Nx_PREMAT; /* 设置预分频比,范围 :0x00-0xFF */
  47. } T16Nx_BaseInitStruType;
  48. /* 捕捉次数控制 */
  49. typedef enum
  50. {
  51. T16Nx_CapTime_1 = 0x0, /* 捕捉次数控制:1 */
  52. T16Nx_CapTime_2 = 0x1, /* 捕捉次数控制:2 */
  53. T16Nx_CapTime_3 = 0x2, /* 捕捉次数控制:3 */
  54. T16Nx_CapTime_4 = 0x3, /* 捕捉次数控制:4 */
  55. T16Nx_CapTime_5 = 0x4, /* 捕捉次数控制:5 */
  56. T16Nx_CapTime_6 = 0x5, /* 捕捉次数控制:6 */
  57. T16Nx_CapTime_7 = 0x6, /* 捕捉次数控制:7 */
  58. T16Nx_CapTime_8 = 0x7, /* 捕捉次数控制:8 */
  59. T16Nx_CapTime_9 = 0x8, /* 捕捉次数控制:9 */
  60. T16Nx_CapTime_10 = 0x9, /* 捕捉次数控制:10 */
  61. T16Nx_CapTime_11 = 0xA, /* 捕捉次数控制:11 */
  62. T16Nx_CapTime_12 = 0xB, /* 捕捉次数控制:12 */
  63. T16Nx_CapTime_13 = 0xC, /* 捕捉次数控制:13 */
  64. T16Nx_CapTime_14 = 0xD, /* 捕捉次数控制:14 */
  65. T16Nx_CapTime_15 = 0xE, /* 捕捉次数控制:15 */
  66. T16Nx_CapTime_16 = 0xF, /* 捕捉次数控制:16 */
  67. } T16Nx_TYPE_CAPT;
  68. /* 捕捉功能初始化结构体定义 */
  69. typedef struct
  70. {
  71. TYPE_FUNCEN T16Nx_CAPCAPL1; /* 捕捉1重载计数器使能 */
  72. TYPE_FUNCEN T16Nx_CAPCAPL0; /* 捕捉0重载计数器使能 */
  73. TYPE_FUNCEN T16Nx_CapRise; /* 上升沿捕捉使能 */
  74. TYPE_FUNCEN T16Nx_CapFall; /* 下降沿捕捉使能 */
  75. TYPE_FUNCEN T16Nx_CapIS0; /* 输入端口0使能 */
  76. TYPE_FUNCEN T16Nx_CapIS1; /* 输入端口1使能 */
  77. T16Nx_TYPE_CAPT T16Nx_CapTime; /* 捕捉次数控制 */
  78. } T16Nx_CapInitStruType;
  79. /* 匹配寄存器值匹配后的工作模式 */
  80. typedef enum
  81. {
  82. T16Nx_Go_No = 0x0, /* 匹配寄存器值匹配后的工作模式:继续计数,不产生中断 */
  83. T16Nx_Hold_Int = 0x1, /* 匹配寄存器值匹配后的工作模式:保持计数,产生中断 */
  84. T16Nx_Clr_Int = 0x2, /* 匹配寄存器值匹配后的工作模式:清零并重新计数,产生中断 */
  85. T16Nx_Go_Int = 0x3, /* 匹配寄存器值匹配后的工作模式:继续计数,产生中断 */
  86. } T16Nx_TYPE_MATCON;
  87. /* 中断配置 */
  88. typedef enum
  89. {
  90. T16Nx_IT_MAT0 = 0x01, /* 匹配0中断 */
  91. T16Nx_IT_MAT1 = 0x02, /* 匹配1中断 */
  92. T16Nx_IT_MAT2 = 0x04, /* 匹配2中断 */
  93. T16Nx_IT_MAT3 = 0x08, /* 匹配3中断 */
  94. T16Nx_IT_TOP0 = 0x10, /* T16N_CNT0匹配计数器峰值中断 */
  95. T16Nx_IT_TOP1 = 0x20, /* T16N_CNT1匹配计数器峰值中断 */
  96. T16Nx_IT_CAP0 = 0x40, /* 输入端口T16NxIN0输入捕捉中断 */
  97. T16Nx_IT_CAP1 = 0x80, /* 输入端口T16NxIN1输入捕捉中断 */
  98. T16Nx_IT_PBK0 = 0x100, /* PWM通道0刹车中断 */
  99. T16Nx_IT_PBK1 = 0x200, /* PWM通道1刹车中断 */
  100. } T16Nx_TYPE_IT;
  101. /* PWM输出极性类型 */
  102. typedef enum
  103. {
  104. POSITIVE = 0x00, /* 正极性 */
  105. NEGATIVE = 0x01, /* 负极性 */
  106. } T16Nx_PWMOUT_POLAR_Type;
  107. /* PWM工作模式选择 */
  108. typedef enum
  109. {
  110. T16Nx_PWMMode_INDEP = 0x0, /* 独立模式 */
  111. T16Nx_PWMMode_SYNC = 0x2, /* 同步模式 */
  112. T16Nx_PWMMode_COMPLE = 0x3, /* 互补模式 */
  113. } T16Nx_PWMTYPE_MODE;
  114. /* 调制功能初始化结构体定义 */
  115. typedef struct
  116. {
  117. TYPE_FUNCEN T16Nx_MOE0; /* 输出端口0使能 */
  118. TYPE_FUNCEN T16Nx_MOE1; /* 输出端口1使能 */
  119. T16Nx_PWMOUT_POLAR_Type T16Nx_POL0; /* T16NxOUT0输出极性选择位 */
  120. T16Nx_PWMOUT_POLAR_Type T16Nx_POL1; /* T16NxOUT1输出极性选择位 */
  121. T16Nx_PWMTYPE_MODE T16Nx_PWMMODE; /* T16PWM输出模式选择 */
  122. TYPE_FUNCEN PWMDZE; /* PWM互补模式死区使能 */
  123. TYPE_FUNCEN REGBUFEN; /* 缓冲寄存器使能 */
  124. } T16Nx_PWMInitStruType;
  125. /* 匹配寄存器值匹配后输出端口的工作模式 */
  126. typedef enum
  127. {
  128. T16Nx_Out_Hold = 0x0, /* 匹配寄存器值匹配后输出端口的工作模式:保持 */
  129. T16Nx_Out_Low = 0x1, /* 匹配寄存器值匹配后输出端口的工作模式:清0 */
  130. T16Nx_Out_High = 0x2, /* 匹配寄存器值匹配后输出端口的工作模式:置1 */
  131. T16Nx_Out_Switch = 0x3, /* 匹配寄存器值匹配后输出端口的工作模式:取反 */
  132. } T16Nx_TYPE_MATOUT;
  133. /* PWM刹车输出电平 */
  134. typedef enum
  135. {
  136. PWMBKOUT_Low = 0,
  137. PWMBKOUT_High = 1,
  138. } T16Nx_PWMBKOUT_LEVEl;
  139. /* PWM刹车信号极性选择 */
  140. typedef enum
  141. {
  142. PWMBKP_High = 0,
  143. PWMBKP_Low = 1,
  144. } T16Nx_PWMBKP_LEVEl;
  145. /*PWM输出刹车控制*/
  146. typedef struct
  147. {
  148. TYPE_FUNCEN T16Nx_PWMBK_EN0; /* PWM通段0刹车使能 */
  149. TYPE_FUNCEN T16Nx_PWMBK_EN1; /* PWM通段0刹车使能 */
  150. T16Nx_PWMBKOUT_LEVEl T16Nx_PWMBK_L0; /* PWM通道0刹车输出电平选择 */
  151. T16Nx_PWMBKOUT_LEVEl T16Nx_PWMBK_L1; /* PWM通道1刹车输出电平选择 */
  152. T16Nx_PWMBKP_LEVEl T16Nx_PWMBK_P0; /* PWM通道0刹车信号极性选择 */
  153. T16Nx_PWMBKP_LEVEl T16Nx_PWMBK_P1; /* PWM通道1刹车信号极性选择 */
  154. } T16Nx_PWMBK_Type;
  155. /*PWM调制模式ADC触发使能控制*/
  156. typedef enum
  157. {
  158. T16Nx_P0MAT0 = 0x02, /* PWM通道0匹配0触发使能 */
  159. T16Nx_P0MAT1 = 0x04, /* PWM通道0匹配1触发使能 */
  160. T16Nx_P0TOP0 = 0x08, /* PWM通道0峰值0触发使能 */
  161. T16Nx_P1MAT2 = 0x20, /* PWM通道1匹配2触发使能 */
  162. T16Nx_P1MAT3 = 0x40, /* PWM通道1匹配3触发使能 */
  163. T16Nx_P1TOP1 = 0x80, /* PWM通道1峰值1触发使能 */
  164. } T16Nx_PWMTRE_type;
  165. /****************************************32位时钟数据结构定义*********************************/
  166. /* 时钟源选择 */
  167. typedef enum
  168. {
  169. T32Nx_ClkS_PCLK = 0x0, /* 时钟源选择:内部PCLK */
  170. T32Nx_ClkS_CK0 = 0x1, /* 时钟源选择:外部CK0时钟输入 */
  171. T32Nx_ClkS_CK1 = 0x2, /* 时钟源选择:外部CK1时钟输入 */
  172. } T32Nx_TYPE_CLKS;
  173. /* 外部时钟计数边沿选择 */
  174. typedef enum
  175. {
  176. T32Nx_EDGE_Rise = 0x0, /* 外部时钟计数边沿选择:上升沿 */
  177. T32Nx_EDGE_Fall = 0x1, /* 外部时钟计数边沿选择:下降沿 */
  178. T32Nx_EDGE_All = 0x2, /* 外部时钟计数边沿选择:所有 */
  179. } T32Nx_TYPE_EDGE;
  180. /* 工作模式选择 */
  181. typedef enum
  182. {
  183. T32Nx_Mode_TC0 = 0x0, /* 工作模式:定时、计数模式 */
  184. T32Nx_Mode_TC1 = 0x1, /* 工作模式:定时、计数模式 */
  185. T32Nx_Mode_CAP = 0x2, /* 工作模式:捕捉模式 */
  186. T32Nx_Mode_PWM = 0x3, /* 工作模式:调制模式 */
  187. } T32Nx_TYPE_MODE;
  188. /* T32Nx初始化配置结构体定义 */
  189. typedef struct
  190. {
  191. T32Nx_TYPE_CLKS T32Nx_ClkS; /* 时钟源选择 */
  192. TYPE_FUNCEN T32Nx_SYNC; /* 外部时钟同步 */
  193. T32Nx_TYPE_EDGE T32Nx_EDGE; /* 外部时钟计数边沿选择 */
  194. T32Nx_TYPE_MODE T32Nx_Mode; /* 工作模式选择 */
  195. unsigned int T32Nx_PREMAT; /* 设置预分频比,范围 :1-256 */
  196. } T32Nx_BaseInitStruType;
  197. /* 捕捉次数控制 */
  198. typedef enum
  199. {
  200. T32Nx_CapTime_1 = 0x0, /* 捕捉次数控制:1 */
  201. T32Nx_CapTime_2 = 0x1, /* 捕捉次数控制:2 */
  202. T32Nx_CapTime_3 = 0x2, /* 捕捉次数控制:3 */
  203. T32Nx_CapTime_4 = 0x3, /* 捕捉次数控制:4 */
  204. T32Nx_CapTime_5 = 0x4, /* 捕捉次数控制:5 */
  205. T32Nx_CapTime_6 = 0x5, /* 捕捉次数控制:6 */
  206. T32Nx_CapTime_7 = 0x6, /* 捕捉次数控制:7 */
  207. T32Nx_CapTime_8 = 0x7, /* 捕捉次数控制:8 */
  208. T32Nx_CapTime_9 = 0x8, /* 捕捉次数控制:9 */
  209. T32Nx_CapTime_10 = 0x9, /* 捕捉次数控制:10 */
  210. T32Nx_CapTime_11 = 0xA, /* 捕捉次数控制:11 */
  211. T32Nx_CapTime_12 = 0xB, /* 捕捉次数控制:12 */
  212. T32Nx_CapTime_13 = 0xC, /* 捕捉次数控制:13 */
  213. T32Nx_CapTime_14 = 0xD, /* 捕捉次数控制:14 */
  214. T32Nx_CapTime_15 = 0xE, /* 捕捉次数控制:15 */
  215. T32Nx_CapTime_16 = 0xF, /* 捕捉次数控制:16 */
  216. } T32Nx_TYPE_CAPT;
  217. /* 捕捉功能初始化结构体定义 */
  218. typedef struct
  219. {
  220. TYPE_FUNCEN T32Nx_CAPCAPL1; /* 捕捉1重载计数器使能 */
  221. TYPE_FUNCEN T32Nx_CAPCAPL0; /* 捕捉0重载计数器使能 */
  222. TYPE_FUNCEN T32Nx_CapRise; /* 上升沿捕捉使能 */
  223. TYPE_FUNCEN T32Nx_CapFall; /* 下降沿捕捉使能 */
  224. TYPE_FUNCEN T32Nx_CapIS0; /* 输入端口0使能 */
  225. TYPE_FUNCEN T32Nx_CapIS1; /* 输入端口1使能 */
  226. T32Nx_TYPE_CAPT T32Nx_CapTime; /* 捕捉次数控制 */
  227. } T32Nx_CapInitStruType;
  228. /* 调制功能初始化结构体定义 */
  229. typedef struct
  230. {
  231. TYPE_FUNCEN T32Nx_MOE0; /* 输出端口0使能 */
  232. TYPE_FUNCEN T32Nx_MOE1; /* 输出端口1使能 */
  233. } T32Nx_PWMInitStruType;
  234. /* 匹配寄存器值匹配后的工作模式 */
  235. typedef enum
  236. {
  237. T32Nx_Go_No = 0x0, /* 匹配寄存器值匹配后的工作模式:继续计数,不产生中断 */
  238. T32Nx_Hold_Int = 0x1, /* 匹配寄存器值匹配后的工作模式:保持计数,产生中断 */
  239. T32Nx_Clr_Int = 0x2, /* 匹配寄存器值匹配后的工作模式:清零并重新计数,产生中断 */
  240. T32Nx_Go_Int = 0x3, /* 匹配寄存器值匹配后的工作模式:继续计数,产生中断 */
  241. } T32Nx_TYPE_MATCON;
  242. /* 匹配寄存器值匹配后输出端口的工作模式 */
  243. typedef enum
  244. {
  245. T32Nx_Out_Hold = 0x0, /* 匹配寄存器值匹配后输出端口的工作模式:保持 */
  246. T32Nx_Out_Low = 0x1, /* 匹配寄存器值匹配后输出端口的工作模式:清0 */
  247. T32Nx_Out_High = 0x2, /* 匹配寄存器值匹配后输出端口的工作模式:置1 */
  248. T32Nx_Out_Switch = 0x3, /* 匹配寄存器值匹配后输出端口的工作模式:取反 */
  249. } T32Nx_TYPE_MATOUT;
  250. /* 中断配置 */
  251. typedef enum
  252. {
  253. T32Nx_IT_MAT0 = 0x01, /* 匹配0中断 */
  254. T32Nx_IT_MAT1 = 0x02, /* 匹配1中断 */
  255. T32Nx_IT_MAT2 = 0x04, /* 匹配2中断 */
  256. T32Nx_IT_MAT3 = 0x08, /* 匹配3中断 */
  257. T32Nx_IT_IT = 0x10, /* T32N匹配0xFFFFFFFF中断使能位 */
  258. T32Nx_IT_CAP0 = 0x20, /* T32N_CNT0匹配计数器峰值中断 */
  259. T32Nx_IT_CAP1 = 0x40, /* T32N_CNT0匹配计数器峰值中断 */
  260. } T32Nx_TYPE_IT;
  261. /*********************T16Nx模块函数声明 *********************/
  262. void T16Nx_BaseInit(T16N_TypeDef *T16Nx, T16Nx_BaseInitStruType *T16Nx_BaseInitStruct);
  263. void T16Nx_CapInit(T16N_TypeDef *T16Nx, T16Nx_CapInitStruType *T16Nx_CapInitStruct);
  264. void T16Nx_PMWOutInit(T16N_TypeDef *T16Nx, T16Nx_PWMInitStruType *T16Nx_PWMInitStruct);
  265. void T16Nx_PWMPDZ_Config(T16N_TypeDef *T16Nx, unsigned int PWM_PDZ_data);
  266. void T16Nx_MAT0ITConfig(T16N_TypeDef *T16Nx, T16Nx_TYPE_MATCON Type);
  267. void T16Nx_MAT1ITConfig(T16N_TypeDef *T16Nx, T16Nx_TYPE_MATCON Type);
  268. void T16Nx_MAT2ITConfig(T16N_TypeDef *T16Nx, T16Nx_TYPE_MATCON Type);
  269. void T16Nx_MAT3ITConfig(T16N_TypeDef *T16Nx, T16Nx_TYPE_MATCON Type);
  270. void T16Nx_MAT0Out0Config(T16N_TypeDef *T16Nx, T16Nx_TYPE_MATOUT Type);
  271. void T16Nx_MAT1Out0Config(T16N_TypeDef *T16Nx, T16Nx_TYPE_MATOUT Type);
  272. void T16Nx_MAT2Out1Config(T16N_TypeDef *T16Nx, T16Nx_TYPE_MATOUT Type);
  273. void T16Nx_MAT3Out1Config(T16N_TypeDef *T16Nx, T16Nx_TYPE_MATOUT Type);
  274. void T16Nx_ITConfig(T16N_TypeDef *T16Nx, T16Nx_TYPE_IT Type, TYPE_FUNCEN NewState);
  275. void T16Nx_SetCNT0(T16N_TypeDef *T16Nx, uint16_t Value);
  276. void T16Nx_SetCNT1(T16N_TypeDef *T16Nx, uint16_t Value);
  277. void T16Nx_SetPREMAT(T16N_TypeDef *T16Nx, uint8_t Value);
  278. void T16Nx_SetPRECNT(T16N_TypeDef *T16Nx, uint8_t Value);
  279. void T16Nx_SetMAT0(T16N_TypeDef *T16Nx, uint16_t Value);
  280. void T16Nx_SetMAT1(T16N_TypeDef *T16Nx, uint16_t Value);
  281. void T16Nx_SetMAT2(T16N_TypeDef *T16Nx, uint16_t Value);
  282. void T16Nx_SetMAT3(T16N_TypeDef *T16Nx, uint16_t Value);
  283. void T16Nx_SetTOP0(T16N_TypeDef *T16Nx, uint16_t Value);
  284. void T16Nx_SetTOP1(T16N_TypeDef *T16Nx, uint16_t Value);
  285. uint16_t T16Nx_GetMAT0(T16N_TypeDef *T16Nx);
  286. uint16_t T16Nx_GetMAT1(T16N_TypeDef *T16Nx);
  287. uint16_t T16Nx_GetMAT2(T16N_TypeDef *T16Nx);
  288. uint16_t T16Nx_GetMAT3(T16N_TypeDef *T16Nx);
  289. uint16_t T16Nx_GetTOP0(T16N_TypeDef *T16Nx);
  290. uint16_t T16Nx_GetTOP1(T16N_TypeDef *T16Nx);
  291. uint16_t T16Nx_GetCNT0(T16N_TypeDef *T16Nx);
  292. uint16_t T16Nx_GetCNT1(T16N_TypeDef *T16Nx);
  293. FlagStatus T16Nx_GetFlagStatus(T16N_TypeDef *T16Nx, T16Nx_TYPE_IT T16Nx_Flag);
  294. FlagStatus T16Nx_GetITStatus(T16N_TypeDef *T16Nx, T16Nx_TYPE_IT T16Nx_Flag);
  295. void T16Nx_ClearITPendingBit(T16N_TypeDef *T16Nx, T16Nx_TYPE_IT TIM_Flag);
  296. void T16Nx_Enable(T16N_TypeDef *T16Nx);
  297. void T16Nx_Disable(T16N_TypeDef *T16Nx);
  298. void T16Nx_PWMBK_Config(T16N_TypeDef *T16Nx, T16Nx_PWMBK_Type *type);
  299. FlagStatus T16Nx_GetPWMBKF(T16N_TypeDef *T16Nx);
  300. void T16Nx_ResetPWMBKF(T16N_TypeDef *T16Nx);
  301. void T16Nx_PTR_Config(T16N_TypeDef *T16Nx, T16Nx_PWMTRE_type Type, TYPE_FUNCEN NewState);
  302. /***************************32位定时器函数声明********************************/
  303. void T32Nx_BaseInit(T32N_TypeDef *T32Nx, T32Nx_BaseInitStruType *T32Nx_BaseInitStruct);
  304. void T32Nx_CapInit(T32N_TypeDef *T32Nx, T32Nx_CapInitStruType *T32Nx_CapInitStruct);
  305. void T32Nx_PMWOutInit(T32N_TypeDef *T32Nx, T32Nx_PWMInitStruType *T32Nx_PWMInitStruct);
  306. void T32Nx_MAT0ITConfig(T32N_TypeDef *T32Nx, T32Nx_TYPE_MATCON Type);
  307. void T32Nx_MAT1ITConfig(T32N_TypeDef *T32Nx, T32Nx_TYPE_MATCON Type);
  308. void T32Nx_MAT2ITConfig(T32N_TypeDef *T32Nx, T32Nx_TYPE_MATCON Type);
  309. void T32Nx_MAT3ITConfig(T32N_TypeDef *T32Nx, T32Nx_TYPE_MATCON Type);
  310. void T32Nx_MAT0Out0Config(T32N_TypeDef *T32Nx, T32Nx_TYPE_MATOUT Type);
  311. void T32Nx_MAT1Out0Config(T32N_TypeDef *T32Nx, T32Nx_TYPE_MATOUT Type);
  312. void T32Nx_MAT2Out1Config(T32N_TypeDef *T32Nx, T32Nx_TYPE_MATOUT Type);
  313. void T32Nx_MAT3Out1Config(T32N_TypeDef *T32Nx, T32Nx_TYPE_MATOUT Type);
  314. void T32Nx_ITConfig(T32N_TypeDef *T32Nx, T32Nx_TYPE_IT Type, TYPE_FUNCEN NewState);
  315. void T32Nx_SetCNT(T32N_TypeDef *T32Nx, uint32_t Value);
  316. void T32Nx_SetPREMAT(T32N_TypeDef *T32Nx, uint8_t Value);
  317. void T32Nx_SetPRECNT(T32N_TypeDef *T32Nx, uint8_t Value);
  318. void T32Nx_SetMAT0(T32N_TypeDef *T32Nx, uint32_t Value);
  319. void T32Nx_SetMAT1(T32N_TypeDef *T32Nx, uint32_t Value);
  320. void T32Nx_SetMAT2(T32N_TypeDef *T32Nx, uint32_t Value);
  321. void T32Nx_SetMAT3(T32N_TypeDef *T32Nx, uint32_t Value);
  322. uint32_t T32Nx_GetMAT0(T32N_TypeDef *T32Nx);
  323. uint32_t T32Nx_GetMAT1(T32N_TypeDef *T32Nx);
  324. uint32_t T32Nx_GetMAT2(T32N_TypeDef *T32Nx);
  325. uint32_t T32Nx_GetMAT3(T32N_TypeDef *T32Nx);
  326. uint32_t T32Nx_GetCNT(T32N_TypeDef *T32Nx);
  327. FlagStatus T32Nx_GetFlagStatus(T32N_TypeDef *T32Nx, T32Nx_TYPE_IT T32Nx_Flag);
  328. FlagStatus T32Nx_GetITStatus(T32N_TypeDef *T32Nx, T32Nx_TYPE_IT T32Nx_Flag);
  329. void T32Nx_ClearITPendingBit(T32N_TypeDef *T32Nx, T32Nx_TYPE_IT TIM_Flag);
  330. void T32Nx_Enable(T32N_TypeDef *T32Nx);
  331. void T32Nx_Disable(T32N_TypeDef *T32Nx);
  332. void BUZC_Frequence(uint32_t Frequence, TYPE_FUNCEN sys_buz);
  333. #endif