|
我是新手,最近看了timegate墨鸢 无感无刷直流电机之电调设计全攻略 收获颇多,非常感谢timegate墨鸢无私的工作。
今天利用空闲时间,根据攻略里面的解释画了一下main函数的流程图,共享出来,希望能对大家有所帮助。
流程图是用OFFICE VISIO画的,画得比较简单,没有把程序里面的变量都写进去,错误之处再所难免,希望大家批评指正。
另外还有两个问题要请教一下大家,
1、下面这段代码具体有什么作用,德文注释,看不懂,呵呵
if(Phase != altPhase) // es gab eine Kommutierung im Interrupt
{
MotorGestoppt = 0;
ZeitFuerBerechnungen = 0; // direkt nach einer Kommutierung ist Zeit
MinUpmPulse = SetDelay(250); // Timeout, falls ein Motor stehen bleibt
altPhase = Phase;
}
2、在下面这段代码中Phase--;有什么用意?
if(Anwerfen(10))
{
GRN_ON;
MotorGestoppt = 0;
Phase--;
PWM = 1;
SetPWM();
SENSE_TOGGLE_INT;
ENABLE_SENSE_INT;
MinUpmPulse = SetDelay(20);
while(!CheckDelay(MinUpmPulse)); // kurz Synchronisieren
PWM = 15;
SetPWM();
MinUpmPulse = SetDelay(300);
while(!CheckDelay(MinUpmPulse)) // kurz Durchstarten
{
if(Strom > LIMIT_STROM/2)
{
STEUER_OFF; // Abschalten wegen Kurzschluss
RotBlink(10);
MotorAnwerfen = 1;
}
}
// Drehzahlmessung wieder aufsetzen
DrehzahlMessTimer = SetDelay(50);
altPhase = 7;
}
else if(SollwertErmittlung()) MotorAnwerfen = 1;
}
恳请大家指教,谢谢!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|