Dependencies:   mbed Motordriver QEI

main.cpp

Committer:
Keisuke_Fujii
Date:
2011-06-13
Revision:
0:993cd673f077
Child:
1:19d647492936

File content as of revision 0:993cd673f077:

#include "include_file.h"

int main( int argc, char **argv )
{
    char key;
    float d = 0.5;
    device.baud( 115200 );
    right_pwm.period_us( 10 );
    left_pwm.period_us( 10 );
    enable.write( 1 );
    
    device.putc('s');
    device.printf("f:forward, b:back, r:turn_right\n"
                  "l:turn_left, a:duty+=0.01, m:duty-=0.01\n");
    while( 1 )
    {
        key = device.getc();
        switch( key )
        {
            case 'f':
                move_f( d );
                break;
            case 'b':
                move_b( d );
                break;
            case 'r':
                turn_r( d );
                break;
            case 'l':
                turn_l( d );
                break;
            case 's':
                stop();
                break;
            case 'a':
                d += 0.01;
                break;
            case 'm':
                d -= 0.01;
                break;
            default:
                break;
        }
        device.printf("duty = %1.2f\r", d);
        wait_ms( 10 );
    }
}

void move_f( float d )
{
    right_P.write( 0 );
    right_N.write( 1 );
    left_P.write( 1 );
    left_N.write( 0 );
    right_pwm.write( d );
    left_pwm.write( d );
    /*right_pwm.pulsewidth_us( d );
    left_pwm.pulsewidth_us( d );*/
}

void move_b( float d )
{
    right_P.write( 1 );
    right_N.write( 0 );
    left_P.write( 0 );
    left_N.write( 1 );
    right_pwm.write( d );
    left_pwm.write( d );
    /*right_pwm.pulsewidth_us( d );
    left_pwm.pulsewidth_us( d );*/
}

void turn_r( float d )
{
    right_P.write( 0 );
    right_N.write( 1 );
    left_P.write( 0 );
    left_N.write( 1 );
    right_pwm.write( d );
    left_pwm.write( d );
    /*right_pwm.pulsewidth_us( d );
    left_pwm.pulsewidth_us( d );*/
}

void turn_l( float d )
{
    right_P.write( 1 );
    right_N.write( 0 );
    left_P.write( 1 );
    left_N.write( 0 );
    right_pwm.write( d );
    left_pwm.write( d );
    /*right_pwm.pulsewidth_us( d );
    left_pwm.pulsewidth_us( d );*/
}

void stop( void )
{
    right_P.write( 0 );
    right_N.write( 0 );
    left_P.write( 0 );
    left_N.write( 0 );
    right_pwm.write( 0 );
    left_pwm.write( 0 );
}