Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 #include "mbed.h" 00002 00003 DigitalOut l1(LED1); 00004 DigitalOut l2(LED2); 00005 DigitalOut l3(LED3); 00006 00007 PwmOut uH(p21);//high side 00008 PwmOut vH(p22); 00009 PwmOut wH(p23); 00010 00011 PwmOut uL(p24);//low side 00012 PwmOut vL(p25); 00013 PwmOut wL(p26); 00014 00015 InterruptIn u(p16);//hole sensor 00016 InterruptIn v(p17); 00017 InterruptIn w(p18); 00018 00019 Serial pc(USBTX,USBRX); 00020 00021 int p,dir; 00022 float period = 1; 00023 float pulse = period / 10; 00024 00025 void mode(int); 00026 void out(float,float,float,float,float,float); 00027 void A();void B();void C(); 00028 void D();void E();void F(); 00029 void LED(int,int,int); 00030 00031 void init(){ 00032 u.mode(PullUp); 00033 v.mode(PullUp); 00034 w.mode(PullUp); 00035 00036 uH.period_us(period); 00037 vH.period_us(period); 00038 wH.period_us(period); 00039 uH.pulsewidth_us(pulse); 00040 vH.pulsewidth_us(pulse); 00041 wH.pulsewidth_us(pulse); 00042 00043 uL.period_us(period); 00044 vL.period_us(period); 00045 wL.period_us(period); 00046 uL.pulsewidth_us(pulse); 00047 vL.pulsewidth_us(pulse); 00048 wL.pulsewidth_us(pulse); 00049 00050 p = 0;//start 00051 dir = 0;// 0/1 <=> CW/CCW 00052 } 00053 00054 int main() { 00055 init(); 00056 u.rise(&A); 00057 w.fall(&B); 00058 v.rise(&C); 00059 u.fall(&D); 00060 w.rise(&E); 00061 v.fall(&F); 00062 while(1) { 00063 mode(p); 00064 //wait_us(1); 00065 //pc.printf("%d\n",p); 00066 } 00067 return 0; 00068 } 00069 00070 void mode(int p){ 00071 switch(p){ 00072 case 0: 00073 out(1,1,1,0,0,0); 00074 LED(1,1,1); 00075 break; 00076 case 1: 00077 out(0,1,1,0,1,0); 00078 LED(1,0,0); 00079 break; 00080 case 2: 00081 out(0,1,1,0,0,1); 00082 LED(1,0,0); 00083 break; 00084 case 3: 00085 out(1,0,1,0,0,1); 00086 LED(0,1,0); 00087 break; 00088 case 4: 00089 out(1,0,1,1,0,0); 00090 LED(0,1,0); 00091 break; 00092 case 5: 00093 out(1,1,0,1,0,0); 00094 LED(0,0,1); 00095 break; 00096 case 6: 00097 out(1,1,0,0,1,0); 00098 LED(0,0,1); 00099 break; 00100 default: 00101 out(1,1,1,0,0,0); 00102 LED(0,0,0); 00103 break; 00104 } 00105 } 00106 00107 void out(float uh,float vh,float wh,float ul,float vl,float wl){ 00108 uL.write(ul); 00109 vL.write(vl); 00110 wL.write(wl); 00111 uH.write(uh); 00112 vH.write(vh); 00113 wH.write(wh); 00114 } 00115 00116 void LED(int i,int ii,int iii){ 00117 l1 = i; 00118 l2 = ii; 00119 l3 = iii; 00120 } 00121 00122 void A(){ 00123 if(dir == 0)p = 1; 00124 else p = 3;} 00125 void B(){ 00126 if(dir == 0)p = 2; 00127 else p = 4;} 00128 void C(){ 00129 if(dir == 0)p = 3; 00130 else p = 5;} 00131 void D(){ 00132 if(dir == 0)p = 4; 00133 else p = 6;} 00134 void E(){ 00135 if(dir == 0)p = 5; 00136 else p = 1;} 00137 void F(){ 00138 if(dir == 0)p = 6; 00139 else p = 2;} 00140
Generated on Thu Jul 14 2022 14:29:35 by
1.7.2