int PGAIN = 30;

/* move n counts away proportionally:
 * motor power is proportional to distance from desired counts.
 * positive number: move forward; negative number: move backward */
void p_move(int n)
{
	int done = 0;
	int check = 0;		/* checks several times to make sure robot is finshed */
	int lpower, rpower; /* proportional power of let and right motors */

	encoder10_counts = 0;/* reset left shaft encoder counts  */
	encoder12_counts = 0;/* reste right shaft encoder counts */

	while(!done)
	{
		printf("\nCounts = %d, %d",encoder10_counts, encoder12_counts);
		lpower = PGAIN * (n - encoder10_counts);	/* set left power */
		rpower = PGAIN * (n - encoder12_counts);	/* set right power */
		if(encoder10_counts > encoder12_counts)
			lpower = lpower - 20;
		if(encoder12_counts > encoder10_counts)
			rpower = rpower - 20;
		motor(LEFT_MOTOR_PORT, lpower);					/* adjust left motor */
		motor(RIGHT_MOTOR_PORT, rpower);					/* adjust right motor */

		if(encoder10_counts == n && encoder12_counts == n)
			check++;	/* increment check if at desired location */
		else
			check = 0;	/* not finished */
		if(check > 50)
			done = 1;	/* 50 checks and robot of robot not changing position */
	}
}

/* rotate n counts away proportionally:
 * motor power is proportional to distance from desired counts.
 * positive number: rotate clockwise; negative number: rotate ctrclockwise */
void p_rotate(int n)
{
	int done = 0;
	int check = 0;		/* checks several times to make sure robot is finshed */
	int lpower, rpower; /* proportional power of let and right motors */

	encoder10_counts = 0;/* reset left shaft encoder counts  */
	encoder12_counts = 0;/* reste right shaft encoder counts */

	while(!done)
	{
		printf("\nCounts = %d, %d",encoder10_counts, encoder12_counts);
		lpower = PGAIN * (n - encoder10_counts);	/* set left power */
		rpower = PGAIN * ((-n) - encoder12_counts);	/* set right power */
		motor(LEFT_MOTOR_PORT, lpower);					/* adjust left motor */
		motor(RIGHT_MOTOR_PORT, rpower);					/* adjust right motor */

		if(encoder10_counts == n && encoder12_counts == (-n))
			check++;	/* increment check if at desired location */
		else
			check = 0;	/* not finished */
		if(check > 50)
			done = 1;	/* 50 checks and robot of robot not changing position */
	}
}
