智能车制作

标题: 急急急!!清华方案的1ms中断有处不明白,菜鸟求解高手 [打印本页]

作者: 月光疾风    时间: 2012-4-13 14:02
标题: 急急急!!清华方案的1ms中断有处不明白,菜鸟求解高手
清华的1ms中断里面的g_n1MSEventCount这个全局变量是怎么计数的啊,1ms自加1吗?没看到自加的句子,不知道它是怎么来的,五个中断片段执行条件是1ms判断一次,每个片段是5ms执行一次吗?没理解,这段程序。纠结滤波菜鸟跪求大神!!!谢谢了!!

void TI1_OnInterrupt(void){
    int i;
    g_nSpeedControlPeriod ++;
    SpeedControlOutput();

    g_nDirectionControlPeriod ++;
    DirectionControlOutput();

    if(g_n1MSEventCount >= CONTROL_PERIOD) {
        g_n1MSEventCount = 0;
        GetMotorPulse();    读取两个电极脉冲计数值
    } else if(g_n1MSEventCount == 1) {         
        for(i = 0; i < INPUT_VOLTAGE_AVERAGE; i ++)
            SampleInputVoltage();
} else if(g_n1MSEventCount == 2) {
        GetInputVoltageAverage();
        AngleCalculate();
        AngleControl();   
        MotorOutput();     
    } else if(g_n1MSEventCount == 3) {
        g_nSpeedControlCount ++;
        if(g_nSpeedControlCount >= SPEED_CONTROL_COUNT) {
            SpeedControl();
            g_nSpeedControlCount = 0;
            g_nSpeedControlPeriod = 0;
        }      
    } else if(g_n1MSEventCount == 4) {   
        g_nDirectionControlCount ++;
        DirectionVoltageSigma();
        if(g_nDirectionControlCount >= DIRECTION_CONTROL_COUNT) {
            DirectionControl();
            g_nDirectionControlCount = 0;
            g_nDirectionControlPeriod = 0;
    }
}

作者: 19504643    时间: 2012-4-13 15:17
同求啊,我也是用官方的方案,卡在这个中断这里了,加我QQ:19504643
作者: 吉他手    时间: 2012-4-13 17:55
请自行在中断服务程序里增加上g_n1MSEventCount ++语句即可。
这是作者在整理文章是,将原程序进行简化时错删了这个语句。
你们可以从竞赛网站下载DSC程序对照其中该函数即可发现的确是作者遗漏了这个语句了。


作者: 月光疾风    时间: 2012-4-13 18:08
吉他手 发表于 2012-4-13 17:55
请自行在中断服务程序里增加上g_n1MSEventCount ++语句即可。
这是作者在整理文章是,将原程序进行简化时错 ...

多谢吉他手老师!!就是看的郁闷了,计数变量怎么就光有条件判断,没有自加语句呢。现在知道了。5个中断片段就是按照标志位顺序执行,第一个片段第一个1ms执行,第二个片段第二个1ms执行……以此类推?不知道我理解的对么?
作者: zlshang    时间: 2014-3-3 10:00
吉他手 发表于 2012-4-13 17:55
请自行在中断服务程序里增加上g_n1MSEventCount ++语句即可。
这是作者在整理文章是,将原程序进行简化时错 ...

老师  请问一下你说的那个DSC程序是在官网哪里呢?  我搜索DSC都没看见代码  我也是中断那里卡住了    可以给个链接  或者发到邮箱这里么  1654806081@qq.com





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2