智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1286|回复: 0
打印 上一主题 下一主题

急求大神解答关于ECT输入捕捉

[复制链接]

15

主题

19

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1567

优秀会员奖章

威望
819
贡献
490
兑换币
507
注册时间
2013-1-21
在线时间
129 小时
毕业学校
北京交通大学
跳转到指定楼层
1#
发表于 2014-10-1 14:43:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void IC_Init()              //频率测量
{
    TSCR1=0x80;        
    TSCR2=0x06;        //分频因子128
    ICSYS=0x02;
    TIOS=0;            //输入捕捉
    TCTL4=0x55;        //上升沿触发
    TCTL3=0x55;
    TIE=0x07;            
}
void main(void)
{
IC_Init();
EnableInterrupts;
  for(;;)
  {
  }

}
#pragma CODE_SEG NON_BANKED
void interrupt 8 ic0_init()
{   
    TFLG1_C0F=1;
    ic6=TC0;  
    if(ic6>ic60)
    {      
        dic6[i6++]=ic6-ic60;        
        ic60=ic6;
    } else
    {
     ic60=ic6;
    }

}
void interrupt 9 ic1_init()
{   
    TFLG1_C1F=1;
    ic7=TC1;                     
    if(ic7>ic70)
    {      
        dic7=ic7-ic70;         
        ic70=ic7;
    } else{
     ic70=ic7;
    }

}
void interrupt 10 ic2_init()
{
    TFLG1_C2F=1;
    ic8=TC2;         
    if(ic8>ic80)
    {      
        dic8=ic8-ic80;           
        ic80=ic8;
    } else
    {
    ic80=ic8;
    }

}
void interrupt 11 ic3_init()
{
    TFLG1_C3F=1;   
    ic1=TCNT;  
    if(ic1>ic10)
    {      
        dic1=ic1-ic10;           
        ic10=ic1;
    } else
    {
    ic10=ic1;
    }               
}

上面是我写的关于测量三相交流电频率的程序,但是为什么会测不准呢?比如dic1有时等于1250,但有时又等于2500,dic7和dic8也一样,是不是初始化有问题,求大神解答。。单片机是dp512


回复

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 16:45 , Processed in 0.039791 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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