OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3425|回复: 3

STM8检测高电平脉冲宽度疑问

[复制链接]

12

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
303
金钱
303
注册时间
2016-5-9
在线时间
70 小时
发表于 2017-3-24 19:37:01 | 显示全部楼层 |阅读模式
20金钱
本帖最后由 黄洪文 于 2017-3-24 19:40 编辑

先指定上升沿触发捕获,当发生捕获事件时读取CCR寄存器的值,再改变为下降沿捕获,当再次中断时读取CCR的值与上次的捕获值相减,,,,,这样做对吗?[mw_shl_code=applescript,true]//TIM2捕获中断服务函数
INTERRUPT_HANDLER(TIM2_CAP_COM_IRQHandler, 14)
{
   uint8_t CC2IF;
  static uint8_t TIM2CH2_CAPTURE_STA=0;
   CC2IF=TIM2->SR1;//第二位是 CC2IF: 捕获/比较2 中断标志  0000 0000
   static uint8_t cnt_capture=0;
   if(CC2IF&0x04)//捕获2发生捕获事件
   {        
      if(TIM2CH2_CAPTURE_STA==0) //捕获到一个上升沿                 
      {                  
        TIM2CH2_CAPTURE_STA=1;   //下次捕获的是下降沿
        TIM2CH2_CAPTURE_VAL_High=TIM2->CCR2H;//获取捕获到上升沿时候的值
        TIM2CH2_CAPTURE_VAL_High<<=8;
        TIM2CH2_CAPTURE_VAL_High+=TIM2->CCR2L;
        TIM2->CCER1 |=1<<5;                         //CC2P=1 设置为下降升沿捕获
        cnt_capture++;
      }
      else                                          //还未开始,第一次捕获下降沿
      {
        TIM2CH2_CAPTURE_VAL_Low=TIM2->CCR2H;//获取捕获到下降沿时候的值
        TIM2CH2_CAPTURE_VAL_Low<<=8;
        TIM2CH2_CAPTURE_VAL_Low+=TIM2->CCR2L;      
        TIM2CH2_CAPTURE_STA =0;               
        TIM2->CCER1&=~(1<<5);                        //CC2P=1 设置捕获上升沿  
        cnt_capture++;
      }               
      if(cnt_capture==2)
      {      
        TIM2CH2_CAPTURE_VAL= abs(TIM2CH2_CAPTURE_VAL_Low-TIM2CH2_CAPTURE_VAL_High);
        cnt_capture=0;
      }
  }
  TIM2->SR1&=~(1<<2);//清除捕获中断标志位
}[/mw_shl_code]
但是测试结果不对!!!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2017-3-25 00:22:45 | 显示全部楼层
如果不溢出,就没问题,但是溢出了,那就肯定会错。必须统计溢出。
回复

使用道具 举报

6

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2016-11-1
在线时间
64 小时
发表于 2017-3-27 22:44:08 | 显示全部楼层
上升沿直接清零,看看最大值会不会溢出,溢出就只能统计溢出或者降低计数周期
回复

使用道具 举报

32

主题

883

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3990
金钱
3990
注册时间
2015-11-14
在线时间
541 小时
发表于 2017-4-2 20:18:50 | 显示全部楼层
统计溢出才行,这样才能根本上解决问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 00:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表