Пример #1
0
void wait_5s ( void )
{
    int t;
    for ( t = 0; t < 9; t++ )
    {
        delay10ktcy(225);
    }
    return;
}
Пример #2
0
void    delay_msec(unsigned int ms)

{
    unsigned char    delay;
    
    /* Should be adjusted to account for function call and loop overhead */
    while ( ms > 0 )
    {
	delay = MIN(ms, 255);
	delay10ktcy(delay);
	ms -= delay;
    }
}
Пример #3
0
// this callback is used when something wrong happened 
// during communication between master and us
void i2c_hw_slave_on_error()
{
while(1) {LA7=!LA7; delay10ktcy(500);}
   // Just tell user user something's got wrong
}
Пример #4
0
void do_autonomous(void)
{
    if (!autonomous)
        return;

    get_sensors(); // Sensor sampling code
    if ( Sumo.atLeftEdge || Sumo.atRightEdge )
        Sumo.state = SURVIVE;

    switch ( Sumo.state )
    {
        case SURVIVE:
            if ( Sumo.atLeftEdge && Sumo.atRightEdge )
            {
                sumo_move(BACKWARD);
                delay10ktcy(250);
                delay10ktcy(250);
                //rotate(180);
                Sumo.searchClockwise = TRUE;
            }
            else if ( Sumo.atLeftEdge )
            {
                sumo_move(BACKWARD);
                delay10ktcy(250);
                delay10ktcy(250);
                //rotate(-135);
                //Add a Delay or create a function rotate(int degrees) instead
                Sumo.searchClockwise = TRUE;
            }
            else if ( Sumo.atRightEdge )
            {
                sumo_move(BACKWARD);
                delay10ktcy(250);
                delay10ktcy(250);
                //rotate(135);
                //Add a Delay or create a function rotate(int degrees) instead
                Sumo.searchClockwise = FALSE;
            }
            Sumo.state = HUNT;
            break;
        case HUNT:
            if ( rangeAverage > mTargetThreshold )
                Sumo.state = ATTACK;
            else if ( Sumo.searchClockwise )
                sumo_move(RIGHT);
                //arc(mHuntPower, mHuntFactor);
            else
                sumo_move(LEFT);
                //arc(mHuntPower, -mHuntFactor);
            break;
        case ATTACK:
            sumo_move(FORWARD);
            if ( rangeAverage < mTargetThreshold )
            {
                Sumo.state = HUNT;
            }
            break;
                default:
            Sumo.state = SURVIVE;
    }
}