Log in

View Full Version : how to add steps in the provided encoder program for the edu


Zaramel2002
10-02-2004, 12:04
I was wondering how to make the program below count the encoder then go to another step instead of ending.

Im trying to make this code my encoder program for this years robot please help.

int encoder_count = 0;
short start_counting = 0;
short end_program = 0;

void Default_Routine(void) /* default routine */
{

if((end_program != 1) && (encoder_count < 12))
/* if program has not ended
and encoder has registered
less than 20 ticks */
{
pwm01=pwm03=169; /* turn left motors forward slowly */
pwm02=pwm04=86; /* turn right motors forward slowly */



if((end_program != 2) && (encoder_count < 30))
/* if program has not ended
and encoder has registered
less than 20 ticks */
{
pwm01=pwm03=169; /* turn left motors forward slowly */
pwm02=pwm04=86; /* turn right motors forward slowly */










if((start_counting == 1) && (rc_dig_in08 == 0))
/* if sensor has seen light and now sees dark*/
{
encoder_count++; /* increment encoder count */
start_counting = 0; /* set to 0 to prevent program
from counting wedge or spoke more than once. */
}
if(rc_dig_in08 != 0) /* if sensor sees light */
{
start_counting = 1; /* set to 1 to enable program
to count a dark wedge or spoke */
}
}
else
{
pwm01=pwm02=pwm03=pwm04=127; /* stop */
end_program = 1; /* end program */
}

printf("%d\n" , rc_dig_in08 ); /* print IR Reflective Sensor readings */

} /* END Default_Routine(); */

Astronouth7303
10-02-2004, 21:45
I was wondering if I could modify the code that is on usfirst.org to do multiple steps after the if statement .

if (1)
{
step1();
step2();
step3();
etc();
}

Astronouth7303
11-02-2004, 07:34
I was wondering how to make the program below count the encoder then go to another step instead of ending.

Im trying to make this code my encoder program for this years robot please help.


I use a static and a loop (in this case, Count is incremented by the sub, but is easily modifiable for ticks)


void Auto(void)
{
static long Count = 0;
if (Count >= 100) //Example, highest first
{
//Step 5
count=0
}
else if (Count >= 80) //Example
{
//Step 4
}
else if (Count >= 60) //Example
{
//Step 3
}
else if (Count >= 40) //Example
{
//Step 2
}
else if (Count >= 20) //Example
{
//Step 1
}
Count = Count + 1;
} //End Auto()

Ryan M.
11-02-2004, 08:35
I use a static and a loop (in this case, Count is incremented by the sub, but is easily modifiable for ticks)


void Auto(void)
{
static long Count = 0;
if (Count >= 100) //Example, highest first
{
//Step 5
count=0
}
else if (Count >= 80) //Example
{
//Step 4
}
else if (Count >= 60) //Example
{
//Step 3
}
else if (Count >= 40) //Example
{
//Step 2
}
else if (Count >= 20) //Example
{
//Step 1
}
Count = Count + 1;
} //End Auto()


Nice example. :)