原子哥的输入捕获例程,判断上升沿与下降沿条件语句不懂(为什么同样条件语句结果一个是上升沿一个下降沿)

2019-10-15 03:05发布

  if((TIM5CH1_CAPTURE_STA&0X80)==0)
{
  if(tsr&0X01)//Òç³ö
  {      
   if(TIM5CH1_CAPTURE_STA&0X40)
   {
    if((TIM5CH1_CAPTURE_STA&0X3F)==0X3F)/
    {
     TIM5CH1_CAPTURE_STA|=0X80;  
     TIM5CH1_CAPTURE_VAL=0XFFFFFFFF;
    }else TIM5CH1_CAPTURE_STA++;
   }  
  }
  if(tsr&0x02)
  {
   if(TIM5CH1_CAPTURE_STA&0X40)   
   {      
    TIM5CH1_CAPTURE_STA|=0X80;  
       TIM5CH1_CAPTURE_VAL=TIM5->CCR1;
     TIM5->CCER&=~(1<<1);   
   }else     
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
正点原子
1楼-- · 2019-10-15 06:29
蜗牛小小 发表于 2016-9-25 20:06
if(TIM5CH1_CAPTURE_STA&0X40)        为什么这个判断语句用了两次,却是一个上升沿,一个下降

仔细看代码,在捕获到上升沿以后,程序修改了捕获极性!!改为下降沿捕获了,所以认真点啊。。。
蜗牛小小
2楼-- · 2019-10-15 07:13
if(TIM5CH1_CAPTURE_STA&0X40)        为什么这个判断语句用了两次,却是一个上升沿,一个下降
正点原子
3楼-- · 2019-10-15 08:13
蜗牛小小 发表于 2016-9-25 20:06
if(TIM5CH1_CAPTURE_STA&0X40)        为什么这个判断语句用了两次,却是一个上升沿,一个下降

仔细看代码,在捕获到上升沿以后,程序修改了捕获极性!!改为下降沿捕获了,所以认真点啊。。。
ifreecoding
4楼-- · 2019-10-15 09:57
因为一个是在上升沿中断里调用的,一个是在下降沿中断里调用的

如果设置成双沿触发,硬件能自动区分上升沿和下降沿就好了,就会方便很多

一周热门 更多>