Хорошо, поэтому я получаю этот код для усреднения: (написано на C)
.
.
int sum[3];
int j;
int avg;
for(;;) //infinite loop
{
for(j=0;j<3;j++){
i = ReadSensor(); // function that keeps saving sensor values as int i
sum[j]=i;
}
avg=sum[0]+sum[1]+sum[2]+sum[3];
printf("Sonar: %d \r \n", avg >> 2);
}
.
.
Это правильно?Я сдвигаюсь на 2, чтобы разделить на avg / 2 ^ (2), что равно 4. Проблема в том, что я ожидаю значение около 15, однако я получаю около 8--9 ... Я не уверен, почему это происходит?
В основном показания датчика колеблются в пределах 15-17, я хочу получить среднее значение вместо значений шума при печати.Мой код правильный?Тогда почему я получаю неправильные результаты!?