|
|
T4T3M &= ~(1<<3); // Timer3停止运行
T3H = 0; T3L = 0;
B_Timer3_OverFlow = 0;
T4T3M |= (1<<3); //Timer3开始运行
XiaoCiCnt = 0; //消磁
PhaseTime = StartTime *14; //半个周期(3个换相时间)换相时间折算成us, PhaseTime = (StartTime/3) *42.667;
for(i=0; i<4; i++) PhaseTimeTmp[i] = PhaseTime; //初始换相时间
delay_N_10us(PhaseTime/20-34); //30度角延时=PhaseTime/2/10, -34为修正8次采样时间340us
step = 2;
StepMotor(); //换相(对应A相反电动势下降沿)
TimeOut = 200; //堵转超时
PWM_Value = START_PWM_DUTY;
PWMA_IER = 0; //如果电机已启动运行,则禁止PWMA中断
run_mode = MOTOR_RUN;
delay_us(50);
CMPIF = 0; //清除比较器中断标志
if(step & 1) PIE = 1, NIE = 0;// 比较器上升沿中断, PIE=1: 允许比较器上升沿中断, PIE=0: 禁止上升沿中断. NIE=1: 允许比较器下降沿中断, NIE=0: 禁止下降沿中断.
else PIE = 0, NIE = 1;
就是上面A相下降沿,延时30度之后为何 是开启第2步 换相?
|
|