CCW CW Control BLDC

Dependencies:   mbed mbed-rtos

Committer:
oguro
Date:
Sun Feb 17 02:58:08 2019 +0000
Revision:
0:faa58403944a
Child:
1:333d2cdd26d0
CCW/CW Control  Kukei seigen HA

Who changed what in which revision?

UserRevisionLine numberNew contents of line
oguro 0:faa58403944a 1 /********* sin Drive *******************/
oguro 0:faa58403944a 2 void PWM_sinU(){
oguro 0:faa58403944a 3 ut1=uT.read_us();
oguro 0:faa58403944a 4 f1=(sin(2*3.14159*(1/(usi*1E-6))*zint)*16384);
oguro 0:faa58403944a 5 a1=(2*cos(2*3.14159*(1/(usi*1E-6))*zint)*16384);
oguro 0:faa58403944a 6 uz[0]=a1;uz[1]=0xC000;uz[2]=0; uz[3]=f1; uz[4]=0;
oguro 0:faa58403944a 7 }
oguro 0:faa58403944a 8 void EN_sinU(){
oguro 0:faa58403944a 9 ut2=uT.read_us();
oguro 0:faa58403944a 10 uT.reset();
oguro 0:faa58403944a 11 }
oguro 0:faa58403944a 12
oguro 0:faa58403944a 13 void PWM_sinV(){
oguro 0:faa58403944a 14 vt1=vT.read_us();
oguro 0:faa58403944a 15 f1=(sin(2*3.14159*(1/(vsi*1E-6))*zint)*16384);
oguro 0:faa58403944a 16 a1=(2*cos(2*3.14159*(1/(vsi*1E-6))*zint)*16384);
oguro 0:faa58403944a 17 vz[0]=a1;vz[1]=0xC000;vz[2]=0; vz[3]=f1; vz[4]=0;
oguro 0:faa58403944a 18
oguro 0:faa58403944a 19 }
oguro 0:faa58403944a 20 void EN_sinV(){
oguro 0:faa58403944a 21 vt2=vT.read_us();
oguro 0:faa58403944a 22 vT.reset();
oguro 0:faa58403944a 23 }
oguro 0:faa58403944a 24
oguro 0:faa58403944a 25 void PWM_sinW(){
oguro 0:faa58403944a 26 wt1=wT.read_us();
oguro 0:faa58403944a 27 f1=(sin(2*3.14159*(1/(wsi*1E-6))*zint)*16384);
oguro 0:faa58403944a 28 a1=(2*cos(2*3.14159*(1/(wsi*1E-6))*zint)*16384);
oguro 0:faa58403944a 29 wz[0]=a1;wz[1]=0xC000;wz[2]=0; wz[3]=f1; wz[4]=0;
oguro 0:faa58403944a 30
oguro 0:faa58403944a 31 }
oguro 0:faa58403944a 32 void EN_sinW(){
oguro 0:faa58403944a 33 wt2=wT.read_us();
oguro 0:faa58403944a 34 wT.reset();
oguro 0:faa58403944a 35 }
oguro 0:faa58403944a 36
oguro 0:faa58403944a 37 /******************z transfer******************************/
oguro 0:faa58403944a 38 void ztr(){
oguro 0:faa58403944a 39
oguro 0:faa58403944a 40 uz[2] = ((uz[1]*uz[4])>>14) + ((uz[0]*uz[3])>>14);
oguro 0:faa58403944a 41 uz[4] = uz[3];
oguro 0:faa58403944a 42 uz[3] = uz[2];
oguro 0:faa58403944a 43
oguro 0:faa58403944a 44 vz[2] = ((vz[1]*vz[4])>>14) + ((vz[0]*vz[3])>>14);
oguro 0:faa58403944a 45 vz[4] = vz[3];
oguro 0:faa58403944a 46 vz[3] = vz[2];
oguro 0:faa58403944a 47
oguro 0:faa58403944a 48 wz[2] = ((wz[1]*wz[4])>>14) + ((wz[0]*wz[3])>>14);
oguro 0:faa58403944a 49 wz[4] = wz[3];
oguro 0:faa58403944a 50 wz[3] = wz[2];
oguro 0:faa58403944a 51 }
oguro 0:faa58403944a 52 /*********************************************************/
oguro 0:faa58403944a 53 void time_UP(){
oguro 0:faa58403944a 54 ut1=uT.read_us();
oguro 0:faa58403944a 55 }
oguro 0:faa58403944a 56 void time_UN(){
oguro 0:faa58403944a 57 ut2=uT.read_us();
oguro 0:faa58403944a 58 uT.reset();
oguro 0:faa58403944a 59 }
oguro 0:faa58403944a 60 void time_VP(){
oguro 0:faa58403944a 61 vt1=vT.read_us();
oguro 0:faa58403944a 62 }
oguro 0:faa58403944a 63 void time_VN(){
oguro 0:faa58403944a 64 vt2=vT.read_us();
oguro 0:faa58403944a 65 vT.reset();
oguro 0:faa58403944a 66 }
oguro 0:faa58403944a 67 void time_WP(){
oguro 0:faa58403944a 68 wt1=wT.read_us();
oguro 0:faa58403944a 69 }
oguro 0:faa58403944a 70 void time_WN(){
oguro 0:faa58403944a 71 wt2=wT.read_us();
oguro 0:faa58403944a 72 wT.reset();
oguro 0:faa58403944a 73 }