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; } }
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; }