飞翼我的心 发表于 2016-12-19 14:30:56

输入捕获

本帖最后由 飞翼我的心 于 2016-12-21 10:25 编辑

我现在tim1输出互补的pwm,要检测其上升沿,我用其CH2进行输入捕获(互补的pwm输出是CH1)结果示波器看见连输出的pwm都没了,附上代码:
void TIM1_Init(void)
{
   TIM1_PSCRH=0X00;
   TIM1_PSCRL=0X00;
   TIM1_ARRH=0XFF;
   TIM1_ARRL=0XFF;
   TIM1_CNTRH=0X00;
   TIM1_CNTRL=0X00;
   TIM1_CCER1&=0XEE;
   TIM1_CCMR2=0X02;
   TIM1_CCER1=0X15;
   //TIM1_SMCR|=0X54;    //这个如果我单纯判断边沿极性还需要吗?
   TIM1_IER=0X02;
   TIM1_CR1=0X85;
}
#pragma vector=0x0E
__interrupt void TIM1_CAP_COM_IRQHandler(void)
{
   if(TIM1_SR1&0X04)//代表上升沿到来?
{
TIM1_SR1=0X00;
}
有人帮忙看看嘛

jackten 发表于 2016-12-19 14:36:46

谢谢分享                  

wenyangzeng 发表于 2016-12-19 17:53:04

本帖最后由 wenyangzeng 于 2016-12-19 17:55 编辑

TIM1_CCMR1、TIM1_CCR1H、TIM1_L没有初始化,TIM1-CC1如何会有输出呢?

suoma 发表于 2016-12-19 19:39:55

想问下,普通IO不能用作输入捕获?

飞翼我的心 发表于 2016-12-20 08:08:01

wenyangzeng 发表于 2016-12-19 17:53
TIM1_CCMR1、TIM1_CCR1H、TIM1_L没有初始化,TIM1-CC1如何会有输出呢?

有的,在另一个子程序里(输出pwm的),如果没有上面这个输入捕获的程序,互补pwm会从CH1正常输出,我觉得还是我这个输入捕获程序的原因。

飞翼我的心 发表于 2016-12-20 08:08:46

suoma 发表于 2016-12-19 19:39
想问下,普通IO不能用作输入捕获?

应该可以吧,我是置为上拉输入

ts2000 发表于 2016-12-20 08:26:49

只有带定时器输出的IO才有捕获功能。。。。。。。

飞翼我的心 发表于 2016-12-20 08:36:49

ts2000 发表于 2016-12-20 08:26
只有带定时器输出的IO才有捕获功能。。。。。。。

嗯,也就是定时器通道所对应的io,我的输入捕获为什么连开始的输出都没了,代码对吗。。。
页: [1]
查看完整版本: 输入捕获