最近在用28035控制BLDC,发现TI官网例程调用了很多宏,我是把宏当作函数来读的,但发现有些按照函数的思维无法理解,比如RC2_MACRO(v),我无法理解它的输出有什么用?想请问下宏可以当函数来读吗?也就是每调用一次宏下面的程序中v.Ramp2DelayCount++,就自加1?但这个宏的输入是占空比,输出又是什么?跟占空比的调节好像又没关系。希望好心人能解读下,谢了
#define RC2_MACRO(v) \
if (v.Out != v.DesiredInput) \
{ \
v.Ramp2DelayCount++; \/**/
if (v.Ramp2DelayCount >= v.Ramp2Delay) \/**/
{ \
v.Ramp2DelayCount = 0; \
if (v.Out < v.DesiredInput) \/**/
{ \
v.Out++; \
if (v.Out > v.Ramp2Max) \
v.Out = v.Ramp2Max; \
} \
else \/**/
{ \
v.Out–; \
if (v.Out < v.Ramp2Min) \
v.Out = v.Ramp2Min; \
} \
} \
}
#endif // __RMP2_CNTL_H__
Tong Daniel:
回复 Martin Yu:
Martin
你好,非常感谢你的指点迷津!