关于红外例程读取高电平时间的提问

2019-07-20 01:03发布

捕获.PNG
if(RDATA)//上升沿捕获

  {
   TIM_OC1PolarityConfig(TIM1,TIM_ICPolarity_Falling);  //CC1P=1 设置为下降沿捕获
  TIM_SetCounter(TIM1,0);     //清空定时器值
   RmtSta|=0X10;     //标记上升沿已经被捕获
  }else //下降沿捕获
  {
   Dval=TIM_GetCapture1(TIM1);//读取CCR1也可以清CC1IF标志位
   TIM_OC1PolarityConfig(TIM1,TIM_ICPolarity_Rising); //CC1P=0 设置为上升沿捕获


就是不是if条件里是判断高低电平,那不是高电平也一直是计时器清零吗?
为什么还可以读到为高电平的时间呢?
求助,感谢


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
peng1554
1楼-- · 2019-07-20 01:44
不会一直计时器清零,只是刚开始的时候清零了,清零后下个时钟周期又开始计数了
そう
2楼-- · 2019-07-20 02:28
peng1554 发表于 2019-7-1 18:38
不会一直计时器清零,只是刚开始的时候清零了,清零后下个时钟周期又开始计数了

那不是if为真就执行 TIM_SetCounter(TIM1,0)吗,不就是为高电平就就清零了吗
peng1554
3楼-- · 2019-07-20 06:31
 精彩回答 2  元偷偷看……
そう
4楼-- · 2019-07-20 09:26
peng1554 发表于 2019-7-1 20:52
又不会一直清零

为什么呀,大佬
正点原子
5楼-- · 2019-07-20 11:50
 精彩回答 2  元偷偷看……

一周热门 更多>