金牌会员
 
- 积分
- 1126
- 金钱
- 1126
- 注册时间
- 2014-8-24
- 在线时间
- 146 小时
|
5金钱
我要测两路PWM的频率。
因为是5V的TTL信号,所以我准备用timer3的CH1和CH2来捕获,
思路是
先捕获CH1信号,两个上升沿之间的时间,然后在捕获一个周期完成的中断中,切换到CH2,
然后捕获CH2信号,两个上升沿之间的时间,然后在捕获一个周期完成的中断中,切换到CH1。
这个切换用什么函数写啊?
我这样写的,不工作呀
void TIM4_Cap_changeChannel2(void)
{
TIM4_ICInitStructure.TIM_Channel = TIM_Channel_2; //CC1S=01 选择输入端 IC1映射到TI1上
TIM4_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //上升沿捕获
TIM4_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //映射到TI1上,通道1与IC1相连
TIM4_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; //配置输入分频,不分频
TIM4_ICInitStructure.TIM_ICFilter = 0x00; //IC1F=0000 配置输入滤波器 不滤波
TIM_ICInit(TIM4, &TIM4_ICInitStructure);
}
void TIM4_Cap_changeChannel1(void)
{
TIM4_ICInitStructure.TIM_Channel = TIM_Channel_1; //CC1S=01 选择输入端 IC1映射到TI1上
TIM4_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //上升沿捕获
TIM4_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //映射到TI1上,通道1与IC1相连
TIM4_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; //配置输入分频,不分频
TIM4_ICInitStructure.TIM_ICFilter = 0x00; //IC1F=0000 配置输入滤波器 不滤波
TIM_ICInit(TIM4, &TIM4_ICInitStructure);
}
|
|