#include "arr_tool.h" //void arr_move_front(uint16_t arr[],uint32_t length) //{ // // uint16_t temp = arr[0],i; // for (i = 0; i < length; i++) // { // arr[i] = arr[i + 1]; // } // arr[length-1]=temp; //} uint16_t find_max_val_position(uint16_t* max_val,uint16_t* arr,uint16_t len) { uint16_t i; uint16_t max_p=0; *max_val = 0; for (i = 0 ; i *max_val) { *max_val = arr[i]; max_p = i; } } return max_p; } uint16_t find_echo_position(uint16_t max_val,uint16_t max_val_position,uint16_t* arr,uint16_t len) { uint16_t i=0; uint32_t max_val_zero; max_val_zero = max_val - 2048 ; //uint16_t echo_position = 0; // 最大值的0.1倍 uint16_t max_val_zero_0R1 = (max_val_zero*8/100)+2048; // 最大值的0.3倍 uint16_t max_val_zero_0R3 = (max_val_zero*40/100)+2048; if(max_val_position>200) { i = max_val_position-200; }else { i = 0; } for(; i < max_val_position;i++) { // 判断是否是顶点 //if( arr[i-2]=arr[i+1] && arr[i+1]>arr[i+2]) // if( arr[i-1] < arr[i] && arr[i]> arr[i+1]) { // 减去偏置电压 //temp_val_zero = arr[i]-2048; // 判断顶点是否在 10%-%30之间。 if(arr[i] >= max_val_zero_0R1 && arr[i] <= max_val_zero_0R3 ) { // 如果找到 函数推出 return i; } } } // 如果没有找到 返回0; return 0; }