利用定时A捕获测频率

[复制链接]
1299|10
 楼主| wang1jie 发表于 2015-11-10 20:53 | 显示全部楼层 |阅读模式
  1. #pragma vector=TIMERA1_VECTOR
  2. __interrupt void Timer_A (void)
  3. {
  4.   static unsigned int str[2]={0};
  5.   static unsigned int temp= 0;
  6. // static unsigned int overflow= 0;
  7.   unsigned int counter;
  8. 这段代码测周期 在0-10US可以显示 在大就无法显示了

  9.   unsigned int dN[5];
  10.   
  11. // switch (TAIV)         //向量查询
  12.   {
  13. //  case 2:            //捕获中断
  14.      str[temp]=TACCR1;
  15.      temp++;
  16.      if(temp == 2)
  17.      {
  18.        temp=0;
  19.        counter =str[1]-str[0];
  20.        dN[4]=counter/10000;
  21.        dN[3]=counter%10000/1000;
  22.        dN[2]=(counter%1000)/100;
  23.        dN[1]=(counter%100)/10;
  24.        dN[0]=counter%10;   
  25.        Disp1Char(9,0,dN[4]+0x30);
  26.        Disp1Char(10,0,dN[3]+0x30);
  27.        Disp1Char(11,0,dN[2]+0x30);
  28.        Disp1Char(12,0,dN[1]+0x30);
  29.        Disp1Char(13,0,dN[0]+0x30);//0x2e是小数点对应的ASCII码值      
  30. delay_ms(1000);      
  31.      }
  32.    }
 楼主| wang1jie 发表于 2015-11-10 20:54 | 显示全部楼层
这段代码测周期 在0-10us内可以显示 在大就无法显示 什么原因 求大神解释
 楼主| wang1jie 发表于 2015-11-10 20:54 | 显示全部楼层
  1. void capture_initial(void)
  2. {
  3.   //计时器A脉冲捕获
  4.     P1DIR &=~BIT2;      //P1.1hP1.2输入
  5.     P1SEL |=BIT2;
  6.     TACTL |=TACLR+TASSEL_2+ID_3+MC_2;          //计数时钟选择SMLK=8MHz,1/8分频后为1MHz
  7.     TACCTL1 |=CM_1+SCS+CAP+CCIE;
  8.     _EINT();
  9. }
dirtwillfly 发表于 2015-11-12 20:00 | 显示全部楼层
哪里的代码?
官网的例程吗?
xyz549040622 发表于 2015-11-13 13:58 | 显示全部楼层
中断中居然有100ms的延时,肯定会出问题的,把这个延时去掉看看。
lvyunzeng 发表于 2015-11-13 15:28 | 显示全部楼层
楼上正解,在中断中不要做什么计算啊,延时啊。等相关操作。在中断中只做,赋值,置标志位等简单的程序操作。主程序检测到标志位后在进行运算,显示等等。然后标志位清零。等待下一次标志位置位操作。
sunmeat 发表于 2015-11-13 16:51 | 显示全部楼层
建议把显示的部分放到主函数中。中断处理太多东西了。
迪卡 发表于 2015-11-14 19:12 | 显示全部楼层
楼主再中断中的延时太长了,尽量不要再中断里加延时
lefeng 发表于 2015-11-14 20:43 | 显示全部楼层
中断处理的东西太多了,忙不过来的
firstblood 发表于 2015-11-15 11:08 | 显示全部楼层
这个主要靠定时器的精确定时来进行尸检的测量,进而计算出频率的
309030106 发表于 2015-11-15 22:36 | 显示全部楼层
中断里尽量做简单的处理
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

51

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部