打印

测脉宽,计数器老是不能清零

[复制链接]
743|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhl100|  楼主 | 2015-12-10 23:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想测的   :  一个频率变化的输入信号   起初为30k   然后 5k(只持续一次)   然后30k
            
再输入重新测 30k    5k   30k   。问题就出在多次输入,我想给计数器清零的时候,怎么也清不掉。
部分代码:
信号输入端开启定时捕捉中断 TA1CCTL2  |=CCIE ;

配置P2。3为捕捉模式
P2SEL |= 0x10;    //选择P2。3作为捕捉的输入端子    Timer1_A    //
TA1CCTL2  |=CM_2+SCS+CAP+CCIS_0  ;  //上升沿触发捕捉,同步模式、时能中断  CCI1A   
TA1CTL |= TASSEL1+MC_2;  //选择SMCLK时钟作为计数时钟源,不分频   增计数模式不行,必须连续计数模式

中断服务程序

  case 4:    选择中断源
    {
  
       我想在这里当我测试完 30k    5k   30k   。数据后

给计数器清零,然后下一次再进入中断,再测试到 30k    5k   30k   。

其中5k是变化的量,我要测试这个脉宽。可是每次计数器都不受我控制



DEFW(   TA1CTL            , TA1CTL_)
#define TA1CCTL0_           (0x0182u)  /* Timer1_A3 Capture/Compare Control 0 */
DEFW(   TA1CCTL0          , TA1CCTL0_)
#define TA1CCTL1_           (0x0184u)  /* Timer1_A3 Capture/Compare Control 1 */
DEFW(   TA1CCTL1          , TA1CCTL1_)
#define TA1CCTL2_           (0x0186u)  /* Timer1_A3 Capture/Compare Control 2 */
DEFW(   TA1CCTL2          , TA1CCTL2_)
#define TA1R_               (0x0190u)  /* Timer1_A3 */

这几个都我把TACLR位置位过,都不能对  time7[flag]=TA1CCR2 ;
time这个清零,TA1R,计数器一直从0到ffff    而且还有很大的负数出现,越来越晕

stm32  stm8用着库很方便到430这里,好费劲
      
   
   
      }
      CCTL2 &= ~CCIFG;//清除中断标志
        
    }
     

相关帖子

沙发
zhl100|  楼主 | 2015-12-11 15:16 | 只看该作者

现在定时捕捉,读数都没问题。配置没问题。
问题是,我想重复操作,将上次的计数器清零,就是清不掉。
因为第一次的读数是准确的,而且我只需要第一组计数值。

这个片子做不到么  MSP430G2553

使用特权

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

本版积分规则

102

主题

787

帖子

2

粉丝