Exemple #1
0
void center()
{
	for(m = 0; m < 8; m++)
	{
		ADC_Start(m);
		ADC_Get( &ad[m] );

		ad_data[m] = ad[m];
	}

	X_l = abs(abs(ad_data[0]-ad_data[1]) - abs(ad_data[2]-ad_data[3]));
	Y_l = abs(abs(ad_data[0]-ad_data[2]) - abs(ad_data[1]-ad_data[3]));

	X_r = abs(abs(ad_data[4]-ad_data[5]) - abs(ad_data[6]-ad_data[7]));
	Y_r = abs(abs(ad_data[4]-ad_data[6]) - abs(ad_data[5]-ad_data[7]));

	if(X_l>X_r)
	{
		center_x = ((float)(X_l-X_r))/2;
		center_y = ((float)(Y_l-Y_r))/2;
	}
	if(X_l<X_r)
	{
		center_x = ((float)(X_r-X_l))/2;
		center_y = ((float)(Y_r-Y_l))/2;
	}

	usart1_transmit(100); 
	usart1_transmit(center_x);

}
Exemple #2
0
void unsigned_dec(int dec)  // 십진수 출력(네자리)
{
	unsigned int result[5];
	result[0] = 0;
	result[1] = 0;
	result[2] = 0;
	result[3] = 0;
	result[4] = 0;

	{
		char i = 0;

		do
		{
			result[i] = (dec % 10) + 48;
			dec = dec / 10;
			i++;

		}while(dec != 0); 

		while(i > 0)
		{
			i--;
			usart1_transmit(result[i]);   
		}
	}
}  
s16 read_ultrasonic_1()
{
 receive_count=0;
 dis_H=dis_L=0;
 usart1_transmit(0x55);
 while(receive_count<=1);
 return dis_H*256+dis_L;
}
Exemple #4
0
void zmp()
{

	for(m = 0; m < 8; m++)
	{
		ADC_Start(m);
		ADC_Get( &ad[m] );

		ad_data[m] = ad[m];
	}
	for(gg=0;gg<8;gg++)
	{
		numerator=ad_data[gg]*lenx[gg];
		count_numerator = count_numerator+numerator;
	}
	for(gg=0;gg<8;gg++)
	{
		denominator=ad_data[gg];
		count_denominator = count_denominator+denominator;
	}
	zmpx = count_numerator/count_denominator;

	for(gg=0;gg<8;gg++)
	{
		numerator_1=ad_data[gg]*leny[gg];
		count_numerator_1 = count_numerator_1+numerator_1;
	}
	for(gg=0;gg<8;gg++)
	{
		denominator_1=ad_data[gg];
		count_denominator_1 = count_denominator_1+denominator_1;
	}
	zmpy = count_numerator_1/count_denominator_1;

	unsigned_dec(zmpx);
	unsigned_dec(zmpy);
	usart1_transmit(0x0d);
	usart1_transmit(0x0a);
}