此程序是控制电机3相通电的开关程序 temp=srd_active[0]+(srd_active[1]*2)+(srd_active[2]*4)+(work_mode*8)+(pwm_mode*16); *ptrACTIVE=temp; 其中srd_active[0]=0 srd_active[1]=0 srd_active[2]=0 work_mode=1 pwm_mode=1 *ptrACTIVE不知道是什么其中srd_active的3个值是0或1,是电机3相的高低电平谁能告诉我*ptrACTIVE得的值是什么,*ptrACTIVE是什么跪求
源代码给出:
if (direct==forward)
{
switch(rotor) {
case 1:
srd_active[0]=0x1;
srd_active[1]=0x0;
srd_active[2]=0x0;
break;
case 2:
srd_active[0]=0x0;
srd_active[1]=0x1;
srd_active[2]=0x0;
break;
case 4:
srd_active[0]=0x0;
srd_active[1]=0x0;
srd_active[2]=0x1;
break;
case 3:
srd_active[0]=0x1;
srd_active[1]=0x1;
srd_active[2]=0x0;
break;
}
}
temp=srd_active[0]+(srd_active[1]*2)+(srd_active[2]*4)+(work_mode*8)+(pwm_mode*16);
*ptrACTIVE=temp;
如果rotor=2
我看的就是这个,都给出来了
继续跪求
[
本帖最后由 lnasxywzl 于 2011-6-27 16:24 编辑 ]
此帖出自
小平头技术问答
+(work_mode*8)+(pwm_mode*16)
=srd_active[0]+(srd_active[1]<<1)+(srd_active[2]<<2)
+(work_mode<<3)+(pwm_mode<<4)
=000x xxxx
一周热门 更多>