реклама на сайте
подробности

 
 
> Усреднение вычислений АЦП
Wantcan
сообщение Jan 10 2009, 05:35
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 11-12-08
Из: Earth
Пользователь №: 42 366



Подскажите хороший алгоритм для усреднения вычислений АЦП,я сделал так-
Код
// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input){
ADMUX=adc_input|ADC_VREF_TYPE;
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;}

while (1){....

   ta++;if(ta==21)ta=0;
   tempADC=(read_adc(0)/5);
   tempADC1=tempADC+(read_adc(0)/5);                  
   if(ta==20)temp=tempADC1/2;tempADC=0;tempADC1=0;
т.е. показывать на индикаторе среднее число из 20 вычислений,но все равно не так сглаженно получается.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Bronislav
сообщение Sep 4 2015, 06:15
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 118
Регистрация: 23-01-06
Пользователь №: 13 477



Такой вариант не подойдет?
for(i=0;i<20;i++) // усредняем 20 выборки
{
ADC_cur = ADС;
if (i == 0)
{
ADC_old = ADC_cur; // первое значение отправляем в сумму
ADC_sum = ADC_old;
}
else
{
ADC_old += ADC_cur; // сложили текущее значение со старым
ADC_old /= 2; // поделили на 2
ADCsum += ADC_old; // просуммировали
}
}
ADC_cur = ADC_sum/20; // cумму поделили на 20 */
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Wantcan   Усреднение вычислений АЦП   Jan 10 2009, 05:35
- - rvk   Конечно не сглаженно, потому что Вы сняв двадцать ...   Jan 10 2009, 05:57
|- - Demeny   Цитата(rvk @ Jan 10 2009, 08:57) Продвину...   Jan 10 2009, 18:33
|- - rezident   Цитата(Demeny @ Jan 10 2009, 23:33) Этот ...   Jan 10 2009, 18:55
||- - Demeny   Цитата(rezident @ Jan 10 2009, 21:55) Воо...   Jan 10 2009, 19:42
|||- - rezident   Цитата(Demeny @ Jan 11 2009, 00:42) Конеч...   Jan 10 2009, 20:26
|||- - Demeny   Цитата(rezident @ Jan 10 2009, 23:26) Да ...   Jan 11 2009, 07:46
|||- - rezident   Цитата(Demeny @ Jan 11 2009, 12:46) Кстат...   Jan 11 2009, 17:04
|||- - Tanya   Цитата(rezident @ Jan 11 2009, 20:04) Для...   Jan 12 2009, 08:02
|||- - 777777   Цитата(rezident @ Jan 11 2009, 20:04) Дей...   Jan 12 2009, 12:44
|||- - demiurg_spb   Цитата(rezident @ Jan 11 2009, 20:04) Для...   Jan 16 2009, 16:04
||- - 777777   Цитата(rezident @ Jan 10 2009, 21:55) Воо...   Jan 11 2009, 07:53
||- - Microwatt   Цитата(777777 @ Jan 11 2009, 11:53) Смысл...   Jan 11 2009, 09:03
||- - 777777   Цитата(Microwatt @ Jan 11 2009, 12:03) Ин...   Jan 11 2009, 11:28
|- - rvk   Цитата(Demeny @ Jan 10 2009, 21:33) Вот п...   Jan 10 2009, 19:02
- - Wantcan   ЦитатаИ кстати складываете Вы двадцать значений, а...   Jan 10 2009, 06:12
- - rvk   Ну используйте вместо for вложенный цикл while: t...   Jan 10 2009, 06:19
- - Alex11   Есть еще один способ получить скользящее среднее. ...   Jan 10 2009, 09:27
|- - Herz   Цитата(Alex11 @ Jan 10 2009, 11:27) Есть ...   Jan 10 2009, 11:20
- - Wantcan   С последним способом у меня не получилось-цифры ск...   Jan 10 2009, 10:52
- - rvk   Не забывайте только про переполнение temp. Если зн...   Jan 10 2009, 11:23
|- - rezident   Цитата(rvk @ Jan 10 2009, 16:23) Чтобы с ...   Jan 10 2009, 11:34
- - 777777   Цитата(Wantcan @ Jan 10 2009, 08:35) Подс...   Jan 11 2009, 07:46
- - Wantcan   Спасибо за все ответы,на этой неделе не будет врем...   Jan 11 2009, 16:59
- - Папа Карло   Возник вопрос по формуле T_average = T_average + (...   Jan 21 2009, 15:16
|- - 777777   Цитата(Папа Карло @ Jan 21 2009, 18:16) В...   Jan 21 2009, 16:05
|- - Палыч   Цитата(777777 @ Jan 21 2009, 19:05) T_ave...   Feb 13 2009, 07:09
|- - 777777   Цитата(Палыч @ Feb 13 2009, 10:09) Вот, и...   Feb 13 2009, 11:55
|- - Палыч   Цитата(777777 @ Feb 13 2009, 14:55) Получ...   Feb 13 2009, 12:59
|- - 777777   Цитата(Палыч @ Feb 13 2009, 15:59) Матема...   Feb 14 2009, 11:18
|- - ReAl   Цитата(777777 @ Feb 14 2009, 13:18) Тогда...   Feb 14 2009, 15:07
- - haker_fox   Хочу сказать, что для фильтрации данных с АЦП прим...   Jan 23 2009, 15:38
- - Wantcan   haker_fox, прошу тнуть пальцем в то место форума,о...   Feb 12 2009, 17:53
|- - 777777   Цитата(Wantcan @ Feb 12 2009, 20:53) hake...   Feb 13 2009, 06:15
|- - blackfin   Цитата(777777 @ Feb 13 2009, 09:15) То ес...   Feb 13 2009, 06:26
|- - Tanya   Цитата(blackfin @ Feb 13 2009, 09:26) Так...   Feb 13 2009, 07:05
|- - 777777   Цитата(blackfin @ Feb 13 2009, 09:26) Так...   Feb 13 2009, 11:40
|- - blackfin   Цитата(777777 @ Feb 13 2009, 14:40) Да, н...   Feb 13 2009, 11:46
- - xemul   Цитата(Палыч @ Feb 13 2009, 15:59) ... По...   Feb 13 2009, 14:08
- - Wantcan   Пожалуйста,помогите переделать найденный на этом ф...   Mar 2 2009, 16:57
- - Wantcan   Остановился на таком варианте Код ta++; if(ta=...   Mar 16 2009, 11:10
- - Флюктуация ваккума   Нужно создать в оперативной памяти закольцованный ...   Aug 15 2015, 12:22


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 23:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01337 секунд с 7
ELECTRONIX ©2004-2016