打印
[STM8]

STM8捕获模式问题

[复制链接]
1174|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
因火生烟|  楼主 | 2016-12-7 19:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM8, TI, TE, SCR, ps
用STM8S105来测试脉冲宽度,TIM1_CH1脚,程序如下 :
  TIM1_CCMR1 |= 0x31;    //翻转。当TIM1_CCR1=TIM1_CNT时,翻转OC1REF的电平。CC1通道被配置为输入,IC1映射在TI1FP1上;  
  TIM1_PSCRH = 0;       //预分频器高8位
  TIM1_PSCRL = 0;
  TIM1_SMCR |= 0x54;     // 滤波后的定时器输入1(TI1FP1) 复位模式 – 在选中的触发输入(TRGI)的上升沿时重新初始化计数器,并且产生一个更新寄存器的信号。     
  TIM1_CCER1 |= 0x01;   //捕获使能。
  TIM1_CR1 |= 0x01;     //开始计数  

  if( TIM1_SR1_CC1IF == 1 )
  {            
   TIM1_SR1_CC1IF=0;
   temp = TIM1_CCR1H;
   temp = ( tempt << 8) + TIM1_CCR1L;
  }

如果TIM1_CCR1H,TIM1_CCR1L数据没读出来前,又发生捕获完成时,这时读取的TIM1_CCR1H,TIM1_CCR1L是哪个的时间值???
沙发
dongnanxibei| | 2016-12-7 22:04 | 只看该作者
不会那么快吧,有个最小周期限制的,超过了就不行, 况且触发了中断后,一般要清理中断标志,然后读,这过程本来就很快,只要周期不是太小就没事。你也可以 先别清理中断标志,先读数据,最后清理退出,这样就不会有连续捕获发生。

使用特权

评论回复
板凳
因火生烟|  楼主 | 2016-12-8 15:25 | 只看该作者
dongnanxibei 发表于 2016-12-7 22:04
不会那么快吧,有个最小周期限制的,超过了就不行, 况且触发了中断后,一般要清理中断标志,然后读,这过 ...

兄弟,我说假设,因为我是用查询方式的,没有用中断

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

167

帖子

8

粉丝