Dependencies:   mbed Motordriver QEI

Committer:
Keisuke_Fujii
Date:
Mon Jun 13 07:41:53 2011 +0000
Revision:
0:993cd673f077
Child:
1:19d647492936

        

Who changed what in which revision?

UserRevisionLine numberNew 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 }