打印
[家电应用]

定时捕获测频率

[复制链接]
1047|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wanglaojii|  楼主 | 2016-6-20 19:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A (void)
{
  static unsigned int str[2]={0};
  static unsigned int temp= 0;
// static unsigned int overflow= 0;
  unsigned int counter;
这段代码测周期 在0-10US可以显示 在大就无法显示了

  unsigned int dN[5];
  
// switch (TAIV)         //向量查询
  {
//  case 2:            //捕获中断
     str[temp]=TACCR1;
     temp++;
     if(temp == 2)
     {
       temp=0;
       counter =str[1]-str[0];
       dN[4]=counter/10000;
       dN[3]=counter%10000/1000;
       dN[2]=(counter%1000)/100;
       dN[1]=(counter%100)/10;
       dN[0]=counter%10;   
       Disp1Char(9,0,dN[4]+0x30);
       Disp1Char(10,0,dN[3]+0x30);
       Disp1Char(11,0,dN[2]+0x30);
       Disp1Char(12,0,dN[1]+0x30);
       Disp1Char(13,0,dN[0]+0x30);//0x2e是小数点对应的ASCII码值      
delay_ms(1000);      
     }
   }
沙发
laozhongyi| | 2016-6-20 19:11 | 只看该作者
哪里的代码?
官网的例程吗?

使用特权

评论回复
板凳
Edisons| | 2016-6-20 19:18 | 只看该作者
中断中居然有100ms的延时,肯定会出问题的。。。

使用特权

评论回复
地板
_gege| | 2016-6-20 19:22 | 只看该作者
楼上正解,在中断中不要做什么计算啊,延时啊。

使用特权

评论回复
5
Mozarts| | 2016-6-20 19:25 | 只看该作者
是的,在中断中只做,赋值,置标志位等简单的程序操作。

使用特权

评论回复
6
Listate| | 2016-6-20 19:27 | 只看该作者
建议把显示的部分放到主函数中。中断处理太多东西了。

使用特权

评论回复
7
wanglaojii|  楼主 | 2016-6-20 19:32 | 只看该作者
这段代码测周期 在0-10us内可以显示 在大就无法显示 什么原因 主要是想知道这个 ,好像有眉目了。

使用特权

评论回复
8
zhouhuanの| | 2016-6-20 19:34 | 只看该作者
楼主再中断中的延时太长了,尽量不要再中断里加延时。

使用特权

评论回复
9
handleMessage| | 2016-6-20 19:40 | 只看该作者
中断里尽量做简单的处理

使用特权

评论回复
10
sourceInsight| | 2016-6-20 19:42 | 只看该作者
这个主要靠定时器的精确定时来进行尸检的测量,进而计算出频率的。

使用特权

评论回复
11
邪恶猛男| | 2016-6-21 07:55 | 只看该作者
正需要频率测量

使用特权

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

本版积分规则

220

主题

1411

帖子

1

粉丝