搜索
bottom↓
回复: 3

有没有谁知道,MK的四轴,AD采样速率是多少?

[复制链接]

出0入0汤圆

发表于 2011-4-2 15:47:42 | 显示全部楼层 |阅读模式
我在看MK的程序和cnmusic的注释,他说四轴在2ms内即时耦合,在0.5s内长期耦合。

但是在2ms的程序里,就用了很多积分参数(IntegralNick、MeanAccNick之类的),纳闷这些积分参数,是每2ms采样一次,0.5s内长期耦合中求出来的,还是2ms之内就已经做了积分了?

如果是2ms内已经做了多次积分了,那积分次数又是多少呢?谢谢!~

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2011-4-4 21:49:23 | 显示全部楼层
这个好说,回复【楼主位】Ian11122840 船儿舟
-----------------------------------------------------------------------

这个好说,你看程序里analog.c里面写得很清楚,没次调用ADC_Enable(),就会调用一次数据采集工作,使用中断时切换通道。

切换了0-17个通道,也就是18个。俯仰、滚转各四次(其他的自己看)。

每次ADC_Enable()之后很快会完成上述这个工作的,因为ADC很快,至少比2ms快多拉。

然后再最后一个状态,会关闭这种自动采集。

那什么时候再采集呢,你搜一下ADC_Enable()在哪里用了就知道啦,在Mean()里用了!Mean()在哪里用了?在MotorControl()里用了,还是第一个调用的程序呢!

那MotorControl()多长时间运行一次?
看这里:主函数中:

        // begin of main loop
        while (1)
        {
                if(UpdateMotor && ADReady)      // control interval
                {
                        UpdateMotor = 0; // reset Flag, is enabled every 2 ms by ISR of timer0

                        //J4HIGH;
                        MotorControl();
                        //J4LOW;

                             。。。。。。
所以,MotorControl()的调用频率受UpdateMotor、 ADReady两个控制变量控。

ADReady不管他,因为他很快就会结束。

UpdateMotor变量是受硬件的定时器控制,固定时间置一的。在这里:

timer0的中断服务程序:

ISR(TIMER0_OVF_vect)    // 9.765 kHz
{
        static uint8_t cnt_1ms = 1,cnt = 0;
        uint8_t Beeper_On = 0;

#ifdef USE_NAVICTRL
        if(SendSPI) SendSPI--; // if SendSPI is 0, the transmit of a byte via SPI bus to and from The Navicontrol is done
#endif

#ifdef USE_RC_SPEKTRUM
        if(SpektrumTimer) SpektrumTimer--;
#endif

        if(!cnt--) // every 10th run (9.765kHz/10 = 976Hz)
        {
                cnt = 9;
                cnt_1ms++;
                cnt_1ms %= 2;
                if(!cnt_1ms) UpdateMotor = 1; // every 2nd run (976Hz/2 = 488 Hz)
                CountMilliseconds++; // increment millisecond counter
        }
        。。。。。。。。。。。。

看到488Hz啦吧,呵呵,大约是2ms多一点啦~~

出0入0汤圆

发表于 2011-4-4 21:53:17 | 显示全部楼层
回复【楼主位】Ian11122840 船儿舟
我在看mk的程序和cnmusic的注释,他说四轴在2ms内即时耦合,在0.5s内长期耦合。
但是在2ms的程序里,就用了很多积分参数(integralnick、meanaccnick之类的),纳闷这些积分参数,是每2ms采样一次,0.5s内长期耦合中求出来的,还是2ms之内就已经做了积分了?
如果是2ms内已经做了多次积分了,那积分次数又是多少呢?谢谢!~
-----------------------------------------------------------------------

至于IntegralNick、MeanAccNick之类的变量,没有你说的那样快的更新啦,都是在fc.c里调用的吧,呵呵,更新就是2好秒加上一次,一直更新啦。

出0入0汤圆

 楼主| 发表于 2011-4-6 08:47:24 | 显示全部楼层
回复【1楼】yuxuanqq
-----------------------------------------------------------------------

谢谢~~搞清楚了个比较重要的问题~感激不尽~
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 10:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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