first commit
This commit is contained in:
		
						commit
						3f016f84d8
					
				
					 47 changed files with 13013 additions and 0 deletions
				
			
		
							
								
								
									
										595
									
								
								vendor/StdPeriphDriver/inc/CH59x_timer.h
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										595
									
								
								vendor/StdPeriphDriver/inc/CH59x_timer.h
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,595 @@ | |||
| /********************************** (C) COPYRIGHT *******************************
 | ||||
|  * File Name          : CH59x_timer.h | ||||
|  * Author             : WCH | ||||
|  * Version            : V1.2 | ||||
|  * Date               : 2021/11/17 | ||||
|  * Description | ||||
|  ********************************************************************************* | ||||
|  * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. | ||||
|  * Attention: This software (modified or not) and binary are used for  | ||||
|  * microcontroller manufactured by Nanjing Qinheng Microelectronics. | ||||
|  *******************************************************************************/ | ||||
| 
 | ||||
| #ifndef __CH59x_TIMER_H__ | ||||
| #define __CH59x_TIMER_H__ | ||||
| 
 | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
| 
 | ||||
| #define DataBit_25            (1 << 25) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief  TMR0 interrupt bit define | ||||
|  */ | ||||
| 
 | ||||
| #define TMR0_3_IT_CYC_END     0x01  // 周期结束标志:捕捉-超时,定时-周期结束,PWM-周期结束
 | ||||
| #define TMR0_3_IT_DATA_ACT    0x02  // 数据有效标志:捕捉-新数据,PWM-有效电平结束
 | ||||
| #define TMR0_3_IT_FIFO_HF     0x04  // FIFO 使用过半:捕捉- FIFO>=4, PWM- FIFO<4
 | ||||
| #define TMR1_2_IT_DMA_END     0x08  // DMA 结束,支持TMR1和TMR2
 | ||||
| #define TMR0_3_IT_FIFO_OV     0x10  // FIFO 溢出:捕捉- FIFO满, PWM- FIFO空
 | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief  Configuration PWM effective level repeat times | ||||
|  */ | ||||
| typedef enum | ||||
| { | ||||
|     PWM_Times_1 = 0, // PWM 有效输出重复1次数
 | ||||
|     PWM_Times_4,     // PWM 有效输出重复4次数
 | ||||
|     PWM_Times_8,     // PWM 有效输出重复8次数
 | ||||
|     PWM_Times_16,    // PWM 有效输出重复16次数
 | ||||
| } PWM_RepeatTsTypeDef; | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief  Configuration Cap mode | ||||
|  */ | ||||
| typedef enum | ||||
| { | ||||
|     CAP_NULL = 0,         // 不捕捉 & 不计数
 | ||||
|     Edge_To_Edge,         // 任意边沿之间  &  计数任意边沿
 | ||||
|     FallEdge_To_FallEdge, // 下降沿到下降沿  & 计数下降沿
 | ||||
|     RiseEdge_To_RiseEdge, // 上升沿到上升沿  &  计数上升沿
 | ||||
| } CapModeTypeDef; | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief  Configuration DMA mode | ||||
|  */ | ||||
| typedef enum | ||||
| { | ||||
|     Mode_Single = 0, // 单次模式
 | ||||
|     Mode_LOOP,       // 循环模式
 | ||||
| } DMAModeTypeDef; | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   定时功能初始化 | ||||
|  * | ||||
|  * @param   t       - 定时时间,基于当前系统时钟Tsys, 最长定时周期 67108864 | ||||
|  */ | ||||
| void TMR0_TimerInit(uint32_t t); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   获取当前定时器值,最大67108864 | ||||
|  * | ||||
|  * @return  当前定时器值 | ||||
|  */ | ||||
| #define TMR0_GetCurrentTimer()    R32_TMR0_COUNT | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   边沿计数功能初始化 | ||||
|  * | ||||
|  * @param   cap     - 采集计数类型 | ||||
|  */ | ||||
| void TMR0_EXTSingleCounterInit(CapModeTypeDef cap); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   设置计数统计溢出大小,最大67108862 | ||||
|  * | ||||
|  * @param   cyc     - 计数统计溢出大小 | ||||
|  */ | ||||
| #define TMR0_CountOverflowCfg(cyc)    (R32_TMR0_CNT_END = (cyc + 2)) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   获取当前计数值,最大67108862 | ||||
|  * | ||||
|  * @return  当前计数值 | ||||
|  */ | ||||
| #define TMR0_GetCurrentCount()        R32_TMR0_COUNT | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   PWM0 通道输出波形周期配置, 最大67108864 | ||||
|  * | ||||
|  * @param   cyc     - 输出波形周期 | ||||
|  */ | ||||
| #define TMR0_PWMCycleCfg(cyc)         (R32_TMR0_CNT_END = cyc) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   PWM 输出初始化 | ||||
|  * | ||||
|  * @param   pr      - select wave polar, refer to PWMX_PolarTypeDef | ||||
|  * @param   ts      - set pwm repeat times, refer to PWM_RepeatTsTypeDef | ||||
|  */ | ||||
| void TMR0_PWMInit(PWMX_PolarTypeDef pr, PWM_RepeatTsTypeDef ts); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   PWM0 有效数据脉宽, 最大67108864 | ||||
|  * | ||||
|  * @param   d       - 有效数据脉宽 | ||||
|  */ | ||||
| #define TMR0_PWMActDataWidth(d)    (R32_TMR0_FIFO = d) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   CAP0 捕捉电平超时配置, 最大33554432 | ||||
|  * | ||||
|  * @param   cyc     - 捕捉电平超时 | ||||
|  */ | ||||
| #define TMR0_CAPTimeoutCfg(cyc)    (R32_TMR0_CNT_END = cyc) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   外部信号捕捉功能初始化 | ||||
|  * | ||||
|  * @param   cap     - select capture mode, refer to CapModeTypeDef | ||||
|  */ | ||||
| void TMR0_CapInit(CapModeTypeDef cap); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   获取脉冲数据 | ||||
|  * | ||||
|  * @return  脉冲数据 | ||||
|  */ | ||||
| #define TMR0_CAPGetData()        R32_TMR0_FIFO | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   获取当前已捕获数据个数 | ||||
|  * | ||||
|  * @return  当前已捕获数据个数 | ||||
|  */ | ||||
| #define TMR0_CAPDataCounter()    R8_TMR0_FIFO_COUNT | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   关闭 TMR0 PWM输出 | ||||
|  */ | ||||
| #define TMR0_PWMDisable()           (R8_TMR0_CTRL_MOD &= ~RB_TMR_OUT_EN) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   开启 TMR0 PWM输出 | ||||
|  */ | ||||
| #define TMR0_PWMEnable()           (R8_TMR0_CTRL_MOD |= RB_TMR_OUT_EN) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   关闭 TMR0 | ||||
|  */ | ||||
| #define TMR0_Disable()           (R8_TMR0_CTRL_MOD &= ~RB_TMR_COUNT_EN) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   开启 TMR0 | ||||
|  */ | ||||
| #define TMR0_Enable()            (R8_TMR0_CTRL_MOD |= RB_TMR_COUNT_EN) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   中断配置 | ||||
|  * | ||||
|  * @param   s       - 使能/关闭 | ||||
|  * @param   f       - refer to TMR interrupt bit define | ||||
|  */ | ||||
| #define TMR0_ITCfg(s, f)         ((s) ? (R8_TMR0_INTER_EN |= f) : (R8_TMR0_INTER_EN &= ~f)) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   清除中断标志 | ||||
|  * | ||||
|  * @param   f       - refer to TMR interrupt bit define | ||||
|  */ | ||||
| #define TMR0_ClearITFlag(f)      (R8_TMR0_INT_FLAG = f) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   查询中断标志状态 | ||||
|  * | ||||
|  * @param   f       - refer to TMR interrupt bit define | ||||
|  */ | ||||
| #define TMR0_GetITFlag(f)        (R8_TMR0_INT_FLAG & f) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   定时功能初始化 | ||||
|  * | ||||
|  * @param   t       - 定时时间,基于当前系统时钟Tsys, 最长定时周期 67108864 | ||||
|  */ | ||||
| void TMR1_TimerInit(uint32_t t); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   获取当前定时器值,最大67108864 | ||||
|  * | ||||
|  * @return  当前定时器值 | ||||
|  */ | ||||
| #define TMR1_GetCurrentTimer()    R32_TMR1_COUNT | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   边沿计数功能初始化 | ||||
|  * | ||||
|  * @param   cap     - 采集计数类型 | ||||
|  */ | ||||
| void TMR1_EXTSingleCounterInit(CapModeTypeDef cap); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   设置计数统计溢出大小,最大67108862 | ||||
|  * | ||||
|  * @param   cyc     - 计数统计溢出大小 | ||||
|  */ | ||||
| #define TMR1_CountOverflowCfg(cyc)    (R32_TMR1_CNT_END = (cyc + 2)) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   获取当前计数值,最大67108862 | ||||
|  * | ||||
|  * @return  当前计数值 | ||||
|  */ | ||||
| #define TMR1_GetCurrentCount()        R32_TMR1_COUNT | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   PWM1 通道输出波形周期配置, 最大67108864 | ||||
|  * | ||||
|  * @param   cyc     - 输出波形周期 | ||||
|  */ | ||||
| #define TMR1_PWMCycleCfg(cyc)         (R32_TMR1_CNT_END = cyc) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   PWM 输出初始化 | ||||
|  * | ||||
|  * @param   pr      - select wave polar, refer to PWMX_PolarTypeDef | ||||
|  * @param   ts      - set pwm repeat times, refer to PWM_RepeatTsTypeDef | ||||
|  */ | ||||
| void TMR1_PWMInit(PWMX_PolarTypeDef pr, PWM_RepeatTsTypeDef ts); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   PWM1 有效数据脉宽, 最大67108864 | ||||
|  * | ||||
|  * @param   d       - 有效数据脉宽 | ||||
|  */ | ||||
| #define TMR1_PWMActDataWidth(d)    (R32_TMR1_FIFO = d) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   CAP1 捕捉电平超时配置, 最大33554432 | ||||
|  * | ||||
|  * @param   cyc     - 捕捉电平超时 | ||||
|  */ | ||||
| #define TMR1_CAPTimeoutCfg(cyc)    (R32_TMR1_CNT_END = cyc) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   外部信号捕捉功能初始化 | ||||
|  * | ||||
|  * @param   cap     - select capture mode, refer to CapModeTypeDef | ||||
|  */ | ||||
| void TMR1_CapInit(CapModeTypeDef cap); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   获取脉冲数据 | ||||
|  * | ||||
|  * @return  脉冲数据 | ||||
|  */ | ||||
| #define TMR1_CAPGetData()        R32_TMR1_FIFO | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   获取当前已捕获数据个数 | ||||
|  * | ||||
|  * @return  当前已捕获数据个数 | ||||
|  */ | ||||
| #define TMR1_CAPDataCounter()    R8_TMR1_FIFO_COUNT | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   配置DMA功能 | ||||
|  * | ||||
|  * @param   s           - 是否打开DMA功能 | ||||
|  * @param   startAddr   - DMA 起始地址 | ||||
|  * @param   endAddr     - DMA 结束地址 | ||||
|  * @param   m           - 配置DMA模式 | ||||
|  */ | ||||
| void TMR1_DMACfg(uint8_t s, uint16_t startAddr, uint16_t endAddr, DMAModeTypeDef m); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   关闭 TMR1 PWM输出 | ||||
|  */ | ||||
| #define TMR1_PWMDisable()           (R8_TMR1_CTRL_MOD &= ~RB_TMR_OUT_EN) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   开启 TMR1 PWM输出 | ||||
|  */ | ||||
| #define TMR1_PWMEnable()           (R8_TMR1_CTRL_MOD |= RB_TMR_OUT_EN) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   关闭 TMR1 | ||||
|  */ | ||||
| #define TMR1_Disable()         (R8_TMR1_CTRL_MOD &= ~RB_TMR_COUNT_EN) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   开启 TMR1 | ||||
|  */ | ||||
| #define TMR1_Enable()          (R8_TMR1_CTRL_MOD |= RB_TMR_COUNT_EN) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   中断配置 | ||||
|  * | ||||
|  * @param   s       - 使能/关闭 | ||||
|  * @param   f       - refer to TMR interrupt bit define | ||||
|  */ | ||||
| #define TMR1_ITCfg(s, f)       ((s) ? (R8_TMR1_INTER_EN |= f) : (R8_TMR1_INTER_EN &= ~f)) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   清除中断标志 | ||||
|  * | ||||
|  * @param   f       - refer to TMR interrupt bit define | ||||
|  */ | ||||
| #define TMR1_ClearITFlag(f)    (R8_TMR1_INT_FLAG = f) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   查询中断标志状态 | ||||
|  * | ||||
|  * @param   f       - refer to TMR interrupt bit define | ||||
|  */ | ||||
| #define TMR1_GetITFlag(f)      (R8_TMR1_INT_FLAG & f) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   定时功能初始化 | ||||
|  * | ||||
|  * @param   t       - 定时时间,基于当前系统时钟Tsys, 最长定时周期 67108864 | ||||
|  */ | ||||
| void TMR2_TimerInit(uint32_t t); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   获取当前定时器值,最大67108864 | ||||
|  * | ||||
|  * @return  当前定时器值 | ||||
|  */ | ||||
| #define TMR2_GetCurrentTimer()    R32_TMR2_COUNT | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   边沿计数功能初始化 | ||||
|  * | ||||
|  * @param   cap     - 采集计数类型 | ||||
|  */ | ||||
| void TMR2_EXTSingleCounterInit(CapModeTypeDef cap); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   设置计数统计溢出大小,最大67108862 | ||||
|  * | ||||
|  * @param   cyc     - 计数统计溢出大小 | ||||
|  */ | ||||
| #define TMR2_CountOverflowCfg(cyc)    (R32_TMR2_CNT_END = (cyc + 2)) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   获取当前计数值,最大67108862 | ||||
|  * | ||||
|  * @return  当前计数值 | ||||
|  */ | ||||
| #define TMR2_GetCurrentCount()        R32_TMR2_COUNT | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   PWM2 通道输出波形周期配置, 最大67108864 | ||||
|  * | ||||
|  * @param   cyc     - 输出波形周期 | ||||
|  */ | ||||
| #define TMR2_PWMCycleCfg(cyc)         (R32_TMR2_CNT_END = cyc) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   PWM 输出初始化 | ||||
|  * | ||||
|  * @param   pr      - select wave polar, refer to PWMX_PolarTypeDef | ||||
|  * @param   ts      - set pwm repeat times, refer to PWM_RepeatTsTypeDef | ||||
|  */ | ||||
| void TMR2_PWMInit(PWMX_PolarTypeDef pr, PWM_RepeatTsTypeDef ts); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   PWM2 有效数据脉宽, 最大67108864 | ||||
|  * | ||||
|  * @param   d       - 有效数据脉宽 | ||||
|  */ | ||||
| #define TMR2_PWMActDataWidth(d)    (R32_TMR2_FIFO = d) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   CAP2 捕捉电平超时配置, 最大33554432 | ||||
|  * | ||||
|  * @param   cyc     - 捕捉电平超时 | ||||
|  */ | ||||
| #define TMR2_CAPTimeoutCfg(cyc)    (R32_TMR2_CNT_END = cyc) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   外部信号捕捉功能初始化 | ||||
|  * | ||||
|  * @param   cap     - select capture mode, refer to CapModeTypeDef | ||||
|  */ | ||||
| void TMR2_CapInit(CapModeTypeDef cap); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   获取脉冲数据 | ||||
|  * | ||||
|  * @return  脉冲数据 | ||||
|  */ | ||||
| #define TMR2_CAPGetData()        R32_TMR2_FIFO | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   获取当前已捕获数据个数 | ||||
|  * | ||||
|  * @return  当前已捕获数据个数 | ||||
|  */ | ||||
| #define TMR2_CAPDataCounter()    R8_TMR2_FIFO_COUNT | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   配置DMA功能 | ||||
|  * | ||||
|  * @param   s           - 是否打开DMA功能 | ||||
|  * @param   startAddr   - DMA 起始地址 | ||||
|  * @param   endAddr     - DMA 结束地址 | ||||
|  * @param   m           - 配置DMA模式 | ||||
|  */ | ||||
| void TMR2_DMACfg(uint8_t s, uint32_t startAddr, uint32_t endAddr, DMAModeTypeDef m); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   关闭 TMR2 PWM输出 | ||||
|  */ | ||||
| #define TMR2_PWMDisable()           (R8_TMR2_CTRL_MOD &= ~RB_TMR_OUT_EN) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   开启 TMR2 PWM输出 | ||||
|  */ | ||||
| #define TMR2_PWMEnable()           (R8_TMR2_CTRL_MOD |= RB_TMR_OUT_EN) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   关闭 TMR2 | ||||
|  */ | ||||
| #define TMR2_Disable()         (R8_TMR2_CTRL_MOD &= ~RB_TMR_COUNT_EN) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   开启 TMR2 | ||||
|  */ | ||||
| #define TMR2_Enable()          (R8_TMR2_CTRL_MOD |= RB_TMR_COUNT_EN) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   中断配置 | ||||
|  * | ||||
|  * @param   s       - 使能/关闭 | ||||
|  * @param   f       - refer to TMR interrupt bit define | ||||
|  */ | ||||
| #define TMR2_ITCfg(s, f)       ((s) ? (R8_TMR2_INTER_EN |= f) : (R8_TMR2_INTER_EN &= ~f)) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   清除中断标志 | ||||
|  * | ||||
|  * @param   f       - refer to TMR interrupt bit define | ||||
|  */ | ||||
| #define TMR2_ClearITFlag(f)    (R8_TMR2_INT_FLAG = f) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   查询中断标志状态 | ||||
|  * | ||||
|  * @param   f       - refer to TMR interrupt bit define | ||||
|  */ | ||||
| #define TMR2_GetITFlag(f)      (R8_TMR2_INT_FLAG & f) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   定时功能初始化 | ||||
|  * | ||||
|  * @param   t       - 定时时间,基于当前系统时钟Tsys, 最长定时周期 67108864 | ||||
|  */ | ||||
| void TMR3_TimerInit(uint32_t t); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   获取当前定时器值,最大67108864 | ||||
|  * | ||||
|  * @return  当前定时器值 | ||||
|  */ | ||||
| #define TMR3_GetCurrentTimer()    R32_TMR3_COUNT | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   边沿计数功能初始化 | ||||
|  * | ||||
|  * @param   cap     - 采集计数类型 | ||||
|  */ | ||||
| void TMR3_EXTSingleCounterInit(CapModeTypeDef cap); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   设置计数统计溢出大小,最大67108862 | ||||
|  * | ||||
|  * @param   cyc     - 计数统计溢出大小 | ||||
|  */ | ||||
| #define TMR3_CountOverflowCfg(cyc)    (R32_TMR3_CNT_END = (cyc + 2)) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   获取当前计数值,最大67108862 | ||||
|  * | ||||
|  * @return  当前计数值 | ||||
|  */ | ||||
| #define TMR3_GetCurrentCount()        R32_TMR3_COUNT | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   PWM3 通道输出波形周期配置, 最大67108864 | ||||
|  * | ||||
|  * @param   cyc     - 输出波形周期 | ||||
|  */ | ||||
| #define TMR3_PWMCycleCfg(cyc)         (R32_TMR3_CNT_END = cyc) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   PWM 输出初始化 | ||||
|  * | ||||
|  * @param   pr      - select wave polar, refer to PWMX_PolarTypeDef | ||||
|  * @param   ts      - set pwm repeat times, refer to PWM_RepeatTsTypeDef | ||||
|  */ | ||||
| void TMR3_PWMInit(PWMX_PolarTypeDef pr, PWM_RepeatTsTypeDef ts); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   PWM3 有效数据脉宽, 最大67108864 | ||||
|  * | ||||
|  * @param   d       - 有效数据脉宽 | ||||
|  */ | ||||
| #define TMR3_PWMActDataWidth(d)    (R32_TMR3_FIFO = d) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   CAP3 捕捉电平超时配置, 最大33554432 | ||||
|  * | ||||
|  * @param   cyc     - 捕捉电平超时 | ||||
|  */ | ||||
| #define TMR3_CAPTimeoutCfg(cyc)    (R32_TMR3_CNT_END = cyc) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   外部信号捕捉功能初始化 | ||||
|  * | ||||
|  * @param   cap     - select capture mode, refer to CapModeTypeDef | ||||
|  */ | ||||
| void TMR3_CapInit(CapModeTypeDef cap); | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   获取脉冲数据 | ||||
|  * | ||||
|  * @return  脉冲数据 | ||||
|  */ | ||||
| #define TMR3_CAPGetData()        R32_TMR3_FIFO | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   获取当前已捕获数据个数 | ||||
|  * | ||||
|  * @return  当前已捕获数据个数 | ||||
|  */ | ||||
| #define TMR3_CAPDataCounter()    R8_TMR3_FIFO_COUNT | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   关闭 TMR3 PWM输出 | ||||
|  */ | ||||
| #define TMR3_PWMDisable()           (R8_TMR3_CTRL_MOD &= ~RB_TMR_OUT_EN) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   开启 TMR3 PWM输出 | ||||
|  */ | ||||
| #define TMR3_PWMEnable()           (R8_TMR3_CTRL_MOD |= RB_TMR_OUT_EN) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   关闭 TMR3 | ||||
|  */ | ||||
| #define TMR3_Disable()           (R8_TMR3_CTRL_MOD &= ~RB_TMR_COUNT_EN) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   开启 TMR3 | ||||
|  */ | ||||
| #define TMR3_Enable()            (R8_TMR3_CTRL_MOD |= RB_TMR_COUNT_EN) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   中断配置 | ||||
|  * | ||||
|  * @param   s       - 使能/关闭 | ||||
|  * @param   f       - refer to TMR interrupt bit define | ||||
|  */ | ||||
| #define TMR3_ITCfg(s, f)         ((s) ? (R8_TMR3_INTER_EN |= f) : (R8_TMR3_INTER_EN &= ~f)) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   清除中断标志 | ||||
|  * | ||||
|  * @param   f       - refer to TMR interrupt bit define | ||||
|  */ | ||||
| #define TMR3_ClearITFlag(f)      (R8_TMR3_INT_FLAG = f) | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief   查询中断标志状态 | ||||
|  * | ||||
|  * @param   f       - refer to TMR interrupt bit define | ||||
|  */ | ||||
| #define TMR3_GetITFlag(f)        (R8_TMR3_INT_FLAG & f) | ||||
| 
 | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| #endif // __CH59x_TIMER_H__
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue