智能车制作
标题:
急急急!!清华方案的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