打印
[51单片机]

C8051F040 用定时器3捕获测试信号频率的问题

[复制链接]
919|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
心印菩提|  楼主 | 2015-8-26 10:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
是这样的,我希望测试HALL信号的频率来计算电机转速
使用了定时器3的捕获功能
但是发现一个问题,电机转速设置成400转,即频率为33HZ,2000转,即167HZ,通过测试频率,闭环控制转速,都没问题
但是单片机分不清楚800转和1600转,在这个转速下测试频率有问题

下面是代码
void interrupt_timer3() interrupt 14
{
        static unsigned int overflow_Flag = 0;
        SFRPAGE   = TMR3_PAGE;
        TR3 = 0;
        if(TF3 == 1)                                           //溢出
        {
                TF3 = 0;
                overflow_Flag++;
        }
        if(EXF3 == 1)                                           //被测信号下降沿
        {
                capture_VAL = RCAP3H * 256 + RCAP3L;
                temp[0] = RCAP3H;
                temp[1] = RCAP3L;
                speed_measure = 1843200 / capture_VAL * 12;
                overflow_Flag = 0;
                EXF3 = 0;
        }       
        SFRPAGE   = TMR3_PAGE;
    TMR3L     = 0x00;
    TMR3H     = 0x00;
        TR3 = 1;
}

我通过串口调试助手把RCAP3H和RCAP3L显示出来,发现同样的被测试频率,他计数值会出错,而且就在这个频率段附近会出现,频率再高或再低都没问题


如图,30DA,2E8A是正确的,但是他会测试出来60C0,5E83这样的值
我晶振频率是22118400Hz,定时器3设置的时钟源是SYSCLK/12
先谢谢了哈

相关帖子

沙发
cowboy2014| | 2015-8-26 15:05 | 只看该作者
单片机怎么判断是600转还是1600转呢?

使用特权

评论回复
板凳
心印菩提|  楼主 | 2015-8-26 15:53 | 只看该作者
speed_measure就是转速,和另一个变量speed_set比较,来调节pwm的占空比,失效定速

使用特权

评论回复
地板
心印菩提|  楼主 | 2015-8-26 15:55 | 只看该作者
cowboy2014 发表于 2015-8-26 15:05
单片机怎么判断是600转还是1600转呢?

现在就是用捕获得到的计数值在一定范围频率下老是容易出错
我还用t4试了试,也一样

使用特权

评论回复
5
ningling_21| | 2015-8-26 17:15 | 只看该作者
心印菩提 发表于 2015-8-26 15:55
现在就是用捕获得到的计数值在一定范围频率下老是容易出错
我还用t4试了试,也一样 ...

仿真看一看问题在哪里

使用特权

评论回复
6
心印菩提|  楼主 | 2015-8-26 20:11 | 只看该作者
ningling_21 发表于 2015-8-26 17:15
仿真看一看问题在哪里

没有仿真器,我也不相信仿真……

使用特权

评论回复
7
ningling_21| | 2015-8-27 08:31 | 只看该作者
心印菩提 发表于 2015-8-26 20:11
没有仿真器,我也不相信仿真……

没仿真器你怎么下载程序的?

使用特权

评论回复
8
心印菩提|  楼主 | 2015-8-27 15:10 | 只看该作者
ningling_21 发表于 2015-8-27 08:31
没仿真器你怎么下载程序的?

我的仿真器不能仿真,就是当个下载器用

使用特权

评论回复
9
心印菩提|  楼主 | 2015-8-27 15:13 | 只看该作者
再接信号源测试,发现各个频率都可以准确测试出来,带电机以后测试频率会出现错误,怀疑是米勒效应耦合的尖刺幅度大时造成误判

使用特权

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

本版积分规则

9

主题

39

帖子

0

粉丝