3Fase 120Deg Drive Table
/*11Z00Z 出力*/
/*111000 極性 180Deg*/
/*001001 3ST*/
#define DriveA 0x0038
#define Newtral 0x0009
unsigned int wk;
unsigned char out[6];
void main(void){
int a,b;
for (a=0;a<6;a++){
wk=DriveA;
wk
=wk<<6;
wk=wk | DriveA;
wk=wk>>a;
printf("wk %1d =%X
\n",a,wk );
out[a]=0;
for(b=0;b<3;b++){
out[a]=out[a]
| wk&0x01;
wk=wk>>2;
out[a]=out[a]<<1;
printf("wk %1d =%X \n",b,out[a] );
}
wk=Newtral;
wk =wk<<6;
wk=wk |
Newtral;
wk=wk>>a;
printf("wkN %1d =%X \n",a,wk);
for(b=0;b<3;b++){
out[a]=out[a]
| wk&0x01;
wk=wk>>2;
out[a]=out[a]<<1;
}
out[a]=out[a]<<1; // Bit7~2
}
for (a=0;a<6;a++){
printf("Table %1d =%X
\n",a,out[a] );
}
}
出力値
Table 0 =30 001,100,z01
Table 1 =68 011,010,0z1
Table 2 =44 010,001,01z
Table 3 =D0 110,100,z10
Table 4 =88 100,010,1z0
Table 5 =A4 101,001,10z