Example #1
0
void step_current()
{
#if 0
	unsigned int z = 0;
	static unsigned int zero_done = 0;
	
  	//Measure zero sensor reading at startup
	if (i_zero_cnt < 17 && i_zero_cnt > 0 && i_state == CURRENT_STARTUP)
  	{
      	i_zero_sum_a = i_zero_sum_a + get_avg_adc(ADC_CURRENT);
      	if (i_zero_cnt == 1)
      	{
			i_zero_a = (i_zero_sum_a >> 4);
		
			//ToDo: add flag
			//Make sure that the zero is valid
			if((i_zero_a > AMP_MIN) && (i_zero_a < AMP_MAX))
			{
				//Value in the range (+-10% for ACS, close to 0 for shunt), we use it
				i_state = CURRENT_READY;
				zero_done = 1;
			}
			else
			{
				//Try again...
				i_state = CURRENT_STARTUP;
				i_zero_sum_a = 0;
				i_zero_sum_b = 0;
				i_zero_cnt = 100;	
			}
      	}
Example #2
0
float get_distance(){

	//uint8_t distance;
	//uint8_t v1;
	//uint8_t d1;
	uint8_t adc_value = get_avg_adc();

	if (adc_value > voltages[0]) {
		int i =0;
		for (i=0; i < 5; i++) {

			if (adc_value < voltages[i]) {
				return (adc_value / voltages[i])*distances[i];
			}
		}
	}

	return 0;

}