本帖最后由 FSL_TICS_Robin 于 2014-8-8 14:25 编辑
有一段程是仪表步进电机控制,请解读一下
void T_SPEED_OnInterrupt(void)
{
/* Write your code here ... */
//模拟量快速转动,间隔时间TC2
TC2 -= (word)32000; //中断时加了32000要减去
if(MotorSpeedIndex[SPEEDOMETER]<MaxSpeedIndex[SPEEDOMETER])//如果小于最高速度
{
if(MotorMoveStatus[SPEEDOMETER]==RAMPUP) //加速、匀速、空闲
{
TC2 += (StepProfile[MotorSpeedIndex[SPEEDOMETER]++])>>1;
}
}
else
{
MotorMoveStatus[SPEEDOMETER]=CONST;//均匀速度
TC2 += (StepProfile[MotorSpeedIndex[SPEEDOMETER]])>>1; //一倍的频率
}
// 以下表没有加减速的处理
if(MotorMode[POWER] == SEARCH)
{
motor_micro_update(POWER);
}
if(MotorMode[TEMP] == SEARCH)
{
motor_micro_update(TEMP);
}
if(MotorMode[FUEL] == SEARCH)
{
motor_micro_update(FUEL);
}
if(MotorMode[SPEEDOMETER] == SEARCH_ZERO)
{
motor_micro_update(SPEEDOMETER);
}
//motor_update(SPEEDOMETER);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
汽车这行业,挺杂的,不知道前景怎么样?
一周热门 更多>