Dependencies: mbed Motordriver QEI
main.cpp@0:993cd673f077, 2011-06-13 (annotated)
- Committer:
- Keisuke_Fujii
- Date:
- Mon Jun 13 07:41:53 2011 +0000
- Revision:
- 0:993cd673f077
- Child:
- 1:19d647492936
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Keisuke_Fujii | 0:993cd673f077 | 1 | #include "include_file.h" |
Keisuke_Fujii | 0:993cd673f077 | 2 | |
Keisuke_Fujii | 0:993cd673f077 | 3 | int main( int argc, char **argv ) |
Keisuke_Fujii | 0:993cd673f077 | 4 | { |
Keisuke_Fujii | 0:993cd673f077 | 5 | char key; |
Keisuke_Fujii | 0:993cd673f077 | 6 | float d = 0.5; |
Keisuke_Fujii | 0:993cd673f077 | 7 | device.baud( 115200 ); |
Keisuke_Fujii | 0:993cd673f077 | 8 | right_pwm.period_us( 10 ); |
Keisuke_Fujii | 0:993cd673f077 | 9 | left_pwm.period_us( 10 ); |
Keisuke_Fujii | 0:993cd673f077 | 10 | enable.write( 1 ); |
Keisuke_Fujii | 0:993cd673f077 | 11 | |
Keisuke_Fujii | 0:993cd673f077 | 12 | device.putc('s'); |
Keisuke_Fujii | 0:993cd673f077 | 13 | device.printf("f:forward, b:back, r:turn_right\n" |
Keisuke_Fujii | 0:993cd673f077 | 14 | "l:turn_left, a:duty+=0.01, m:duty-=0.01\n"); |
Keisuke_Fujii | 0:993cd673f077 | 15 | while( 1 ) |
Keisuke_Fujii | 0:993cd673f077 | 16 | { |
Keisuke_Fujii | 0:993cd673f077 | 17 | key = device.getc(); |
Keisuke_Fujii | 0:993cd673f077 | 18 | switch( key ) |
Keisuke_Fujii | 0:993cd673f077 | 19 | { |
Keisuke_Fujii | 0:993cd673f077 | 20 | case 'f': |
Keisuke_Fujii | 0:993cd673f077 | 21 | move_f( d ); |
Keisuke_Fujii | 0:993cd673f077 | 22 | break; |
Keisuke_Fujii | 0:993cd673f077 | 23 | case 'b': |
Keisuke_Fujii | 0:993cd673f077 | 24 | move_b( d ); |
Keisuke_Fujii | 0:993cd673f077 | 25 | break; |
Keisuke_Fujii | 0:993cd673f077 | 26 | case 'r': |
Keisuke_Fujii | 0:993cd673f077 | 27 | turn_r( d ); |
Keisuke_Fujii | 0:993cd673f077 | 28 | break; |
Keisuke_Fujii | 0:993cd673f077 | 29 | case 'l': |
Keisuke_Fujii | 0:993cd673f077 | 30 | turn_l( d ); |
Keisuke_Fujii | 0:993cd673f077 | 31 | break; |
Keisuke_Fujii | 0:993cd673f077 | 32 | case 's': |
Keisuke_Fujii | 0:993cd673f077 | 33 | stop(); |
Keisuke_Fujii | 0:993cd673f077 | 34 | break; |
Keisuke_Fujii | 0:993cd673f077 | 35 | case 'a': |
Keisuke_Fujii | 0:993cd673f077 | 36 | d += 0.01; |
Keisuke_Fujii | 0:993cd673f077 | 37 | break; |
Keisuke_Fujii | 0:993cd673f077 | 38 | case 'm': |
Keisuke_Fujii | 0:993cd673f077 | 39 | d -= 0.01; |
Keisuke_Fujii | 0:993cd673f077 | 40 | break; |
Keisuke_Fujii | 0:993cd673f077 | 41 | default: |
Keisuke_Fujii | 0:993cd673f077 | 42 | break; |
Keisuke_Fujii | 0:993cd673f077 | 43 | } |
Keisuke_Fujii | 0:993cd673f077 | 44 | device.printf("duty = %1.2f\r", d); |
Keisuke_Fujii | 0:993cd673f077 | 45 | wait_ms( 10 ); |
Keisuke_Fujii | 0:993cd673f077 | 46 | } |
Keisuke_Fujii | 0:993cd673f077 | 47 | } |
Keisuke_Fujii | 0:993cd673f077 | 48 | |
Keisuke_Fujii | 0:993cd673f077 | 49 | void move_f( float d ) |
Keisuke_Fujii | 0:993cd673f077 | 50 | { |
Keisuke_Fujii | 0:993cd673f077 | 51 | right_P.write( 0 ); |
Keisuke_Fujii | 0:993cd673f077 | 52 | right_N.write( 1 ); |
Keisuke_Fujii | 0:993cd673f077 | 53 | left_P.write( 1 ); |
Keisuke_Fujii | 0:993cd673f077 | 54 | left_N.write( 0 ); |
Keisuke_Fujii | 0:993cd673f077 | 55 | right_pwm.write( d ); |
Keisuke_Fujii | 0:993cd673f077 | 56 | left_pwm.write( d ); |
Keisuke_Fujii | 0:993cd673f077 | 57 | /*right_pwm.pulsewidth_us( d ); |
Keisuke_Fujii | 0:993cd673f077 | 58 | left_pwm.pulsewidth_us( d );*/ |
Keisuke_Fujii | 0:993cd673f077 | 59 | } |
Keisuke_Fujii | 0:993cd673f077 | 60 | |
Keisuke_Fujii | 0:993cd673f077 | 61 | void move_b( float d ) |
Keisuke_Fujii | 0:993cd673f077 | 62 | { |
Keisuke_Fujii | 0:993cd673f077 | 63 | right_P.write( 1 ); |
Keisuke_Fujii | 0:993cd673f077 | 64 | right_N.write( 0 ); |
Keisuke_Fujii | 0:993cd673f077 | 65 | left_P.write( 0 ); |
Keisuke_Fujii | 0:993cd673f077 | 66 | left_N.write( 1 ); |
Keisuke_Fujii | 0:993cd673f077 | 67 | right_pwm.write( d ); |
Keisuke_Fujii | 0:993cd673f077 | 68 | left_pwm.write( d ); |
Keisuke_Fujii | 0:993cd673f077 | 69 | /*right_pwm.pulsewidth_us( d ); |
Keisuke_Fujii | 0:993cd673f077 | 70 | left_pwm.pulsewidth_us( d );*/ |
Keisuke_Fujii | 0:993cd673f077 | 71 | } |
Keisuke_Fujii | 0:993cd673f077 | 72 | |
Keisuke_Fujii | 0:993cd673f077 | 73 | void turn_r( float d ) |
Keisuke_Fujii | 0:993cd673f077 | 74 | { |
Keisuke_Fujii | 0:993cd673f077 | 75 | right_P.write( 0 ); |
Keisuke_Fujii | 0:993cd673f077 | 76 | right_N.write( 1 ); |
Keisuke_Fujii | 0:993cd673f077 | 77 | left_P.write( 0 ); |
Keisuke_Fujii | 0:993cd673f077 | 78 | left_N.write( 1 ); |
Keisuke_Fujii | 0:993cd673f077 | 79 | right_pwm.write( d ); |
Keisuke_Fujii | 0:993cd673f077 | 80 | left_pwm.write( d ); |
Keisuke_Fujii | 0:993cd673f077 | 81 | /*right_pwm.pulsewidth_us( d ); |
Keisuke_Fujii | 0:993cd673f077 | 82 | left_pwm.pulsewidth_us( d );*/ |
Keisuke_Fujii | 0:993cd673f077 | 83 | } |
Keisuke_Fujii | 0:993cd673f077 | 84 | |
Keisuke_Fujii | 0:993cd673f077 | 85 | void turn_l( float d ) |
Keisuke_Fujii | 0:993cd673f077 | 86 | { |
Keisuke_Fujii | 0:993cd673f077 | 87 | right_P.write( 1 ); |
Keisuke_Fujii | 0:993cd673f077 | 88 | right_N.write( 0 ); |
Keisuke_Fujii | 0:993cd673f077 | 89 | left_P.write( 1 ); |
Keisuke_Fujii | 0:993cd673f077 | 90 | left_N.write( 0 ); |
Keisuke_Fujii | 0:993cd673f077 | 91 | right_pwm.write( d ); |
Keisuke_Fujii | 0:993cd673f077 | 92 | left_pwm.write( d ); |
Keisuke_Fujii | 0:993cd673f077 | 93 | /*right_pwm.pulsewidth_us( d ); |
Keisuke_Fujii | 0:993cd673f077 | 94 | left_pwm.pulsewidth_us( d );*/ |
Keisuke_Fujii | 0:993cd673f077 | 95 | } |
Keisuke_Fujii | 0:993cd673f077 | 96 | |
Keisuke_Fujii | 0:993cd673f077 | 97 | void stop( void ) |
Keisuke_Fujii | 0:993cd673f077 | 98 | { |
Keisuke_Fujii | 0:993cd673f077 | 99 | right_P.write( 0 ); |
Keisuke_Fujii | 0:993cd673f077 | 100 | right_N.write( 0 ); |
Keisuke_Fujii | 0:993cd673f077 | 101 | left_P.write( 0 ); |
Keisuke_Fujii | 0:993cd673f077 | 102 | left_N.write( 0 ); |
Keisuke_Fujii | 0:993cd673f077 | 103 | right_pwm.write( 0 ); |
Keisuke_Fujii | 0:993cd673f077 | 104 | left_pwm.write( 0 ); |
Keisuke_Fujii | 0:993cd673f077 | 105 | } |