
めいん
Diff: prime.h
- Revision:
- 3:3a1b0dda8c6c
- Parent:
- 1:a1e592eca305
--- a/prime.h Tue Aug 30 06:51:41 2016 +0000 +++ b/prime.h Thu Sep 01 05:49:45 2016 +0000 @@ -44,11 +44,12 @@ DigitalOut PINY(PA_10); DigitalOut PINZ(PB_3); -QEI right (PA_7, PA_5, NC, 100, QEI::X2_ENCODING); -QEI left (PH_0, PC_14, NC, 100, QEI::X2_ENCODING); -DigitalOut encordervcc1(PA_10); -DigitalOut encordervcc2(PC_15); +QEI right (PA_7, PA_5, NC, 100, QEI::X2_ENCODING); +QEI left (PA_13, PA_15, NC, 100, QEI::X2_ENCODING); + +DigitalOut encordervcc1(PA_6); +DigitalOut encordervcc2(PA_14); void initencorder(void){ encordervcc1=1; @@ -232,70 +233,7 @@ // 0 1 2 3 } -/* -void move(int right,int left){ - - if(right>256){right=256;} - if(left>256){left=256;} - if(right<-256){right=-256;} - if(left<-256){left=-256;} - - PwmOut M1cw(PA_11); - PwmOut M1ccw(PB_15); - PwmOut M2cw(PB_14); - PwmOut M2ccw(PB_13); - M1cw.period_us(256); - M1ccw.period_us(256); - M2cw.period_us(256); - M2ccw.period_us(256); - - - right=256-right; - left=256-left;//トランジスタ挿入によってON,OFFが逆転したための措置 - - //回さないモーターにはperiod=widthを出力 - if(right>0&&left>0){ - - M1cw.pulsewidth_us(right); - M2cw.pulsewidth_us(left); - M1ccw.pulsewidth_us(256); - M2ccw.pulsewidth_us(256); - } - - else if(right<0&&left>0){ - - - M1cw.pulsewidth_us(256); - M2cw.pulsewidth_us(left); - M1ccw.pulsewidth_us(right); - M2ccw.pulsewidth_us(256); - } - else if(right>0&&left<0){ - - - M1cw.pulsewidth_us(right); - M2cw.pulsewidth_us(256); - M1ccw.pulsewidth_us(256); - M2ccw.pulsewidth_us(left); - } - else if(right<0&&left<0){ - - - M1cw.pulsewidth_us(256); - M2cw.pulsewidth_us(256); - M1ccw.pulsewidth_us(right); - M2ccw.pulsewidth_us(left); - } - else if(right==0&&left==0){ - - M1cw.pulsewidth_us(256); - M2cw.pulsewidth_us(256); - M1ccw.pulsewidth_us(256); - M2ccw.pulsewidth_us(256); - } -} -*/ void initmotor(){ @@ -309,26 +247,29 @@ void move(int right,int left){ + float rightduty,leftduty; + if(right>256){right=256;} if(left>256){left=256;} if(right<-256){right=-256;} if(left<-256){left=-256;} + rightduty=right/256; + leftduty=left/256; - //回さないモーターにはperiod=widthを出力 if(right>0){ - M1cw.pulsewidth_us(256-right); - M1ccw.pulsewidth_us(256); + M1cw.write(1-rightduty); + M1ccw.write(1); }else{ - M1cw.pulsewidth_us(256); - M1ccw.pulsewidth_us(256+right); + M1cw.write(1); + M1ccw.write(1-rightduty); } if(left>0){ - M2cw.pulsewidth_us(256-left); - M2ccw.pulsewidth_us(256); + M2cw.write(1-leftduty); + M2ccw.write(1); }else{ - M2cw.pulsewidth_us(256); - M2ccw.pulsewidth_us(256+left); + M2cw.write(1); + M2ccw.write(1-leftduty); } }