1 /********************************** (C) COPYRIGHT ******************************* 2 * File Name : CH57x_timer3.c 3 * Author : WCH 4 * Version : V1.0 5 * Date : 2018/12/15 6 * Description 7 *******************************************************************************/ 8 9 #include "CH57x_common.h" 10 11 12 /******************************************************************************* 13 * Function Name : TMR3_TimerInit 14 * Description : 定时功能初始化 15 * Input : t: 定时时间,基于当前系统时钟Tsys, 最长定时周期 67108864 16 17 * Return : None 18 *******************************************************************************/ TMR3_TimerInit(UINT32 t)19void TMR3_TimerInit( UINT32 t ) 20 { 21 R32_TMR3_CNT_END = t; 22 R8_TMR3_CTRL_MOD = RB_TMR_ALL_CLEAR; 23 R8_TMR3_CTRL_MOD = RB_TMR_COUNT_EN; 24 } 25 26 /******************************************************************************* 27 * Function Name : TMR3_EXTSingleCounterInit 28 * Description : 外部信号计数功能初始化 29 * Input : c: 外部送入信号脉冲计数, 最长计数 67108864 30 * Return : None 31 *******************************************************************************/ TMR3_EXTSingleCounterInit(UINT32 c)32void TMR3_EXTSingleCounterInit( UINT32 c ) 33 { 34 R32_TMR3_CNT_END = c; 35 R8_TMR3_CTRL_MOD = RB_TMR_ALL_CLEAR; 36 R8_TMR3_CTRL_MOD = RB_TMR_CAP_COUNT|RB_TMR_MODE_IN|RB_TMR_COUNT_EN; 37 } 38 39 /******************************************************************************* 40 * Function Name : TMR3_CountInit 41 * Description : 边沿计数功能初始化 42 * Input : cap: 采集计数类型 43 CAP_NULL - 不计数 44 Edge_To_Edge - 计数任意边沿 45 FallEdge_To_FallEdge - 计数下降沿 46 RiseEdge_To_RiseEdge - 计数上升沿 47 * Return : None 48 *******************************************************************************/ TMR3_CountInit(CapModeTypeDef cap)49void TMR3_CountInit( CapModeTypeDef cap ) 50 { 51 R8_TMR3_CTRL_MOD = RB_TMR_ALL_CLEAR; 52 R8_TMR3_CTRL_MOD = RB_TMR_COUNT_EN \ 53 |RB_TMR_CAP_COUNT \ 54 |RB_TMR_MODE_IN \ 55 |(cap<<6); 56 } 57 58 /******************************************************************************* 59 * Function Name : TMR3_PWMInit 60 * Description : PWM 输出初始化 61 * Input : pr: select wave polar 62 refer to PWMX_PolarTypeDef 63 ts: set pwm repeat times 64 refer to PWM_RepeatTsTypeDef 65 * Return : None 66 *******************************************************************************/ TMR3_PWMInit(PWMX_PolarTypeDef pr,PWM_RepeatTsTypeDef ts)67void TMR3_PWMInit( PWMX_PolarTypeDef pr, PWM_RepeatTsTypeDef ts ) 68 { 69 // R8_TMR3_CTRL_MOD = RB_TMR_ALL_CLEAR; 70 R8_TMR3_CTRL_MOD = RB_TMR_COUNT_EN \ 71 |RB_TMR_OUT_EN \ 72 |(pr<<4) \ 73 |(ts<<6); 74 } 75 76 77 /******************************************************************************* 78 * Function Name : TMR3_CapInit 79 * Description : 外部信号捕捉功能初始化 80 * Input : cap: select capture mode 81 refer to CapModeTypeDef 82 * Return : None 83 *******************************************************************************/ TMR3_CapInit(CapModeTypeDef cap)84void TMR3_CapInit( CapModeTypeDef cap ) 85 { 86 R8_TMR3_CTRL_MOD = RB_TMR_ALL_CLEAR; 87 R8_TMR3_CTRL_MOD = RB_TMR_COUNT_EN \ 88 |RB_TMR_MODE_IN \ 89 |(cap<<6); 90 } 91 92 93 94 95 96 97