|
Усреднение вычислений АЦП |
|
|
|
Jan 10 2009, 05:35
|
Участник

Группа: Участник
Сообщений: 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 вычислений,но все равно не так сглаженно получается.
|
|
|
|
|
 |
Ответов
|
Feb 12 2009, 17:53
|
Участник

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

|
haker_fox, прошу тнуть пальцем в то место форума,о котором вы упомянули,т.к. для меня все еще актуальна эта тема..
|
|
|
|
|
Feb 13 2009, 11:40
|

Профессионал
    
Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357

|
Цитата(blackfin @ Feb 13 2009, 09:26)  Так ведь, "усреднить помехи" по сути и означает отфильтровать их, т.е. - устранить.. Или нет? Да, но только устраняют их обычно на входе АЦП, в аналоговом виде, так чтобы АЦП выдавал устойчивый код, который не пришлось бы фильтровать. И не путем подключения RC-цепочки, а путем выяснения их природы и устранения того, что их вызывает. Например, распространенная ошибка - обратный ток от светодиодных индикаторов идет по той же земле, на которой висит АЦП. Падение тока на нем вызывает скачки на земле. Эти помехи вы не устраните усреднением, потому что все они "в одну сторону", так что даже усреднив их вы получите неправильный результат.
|
|
|
|
Сообщений в этой теме
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   Tanya Цитата(blackfin @ Feb 13 2009, 09:26) Так... Feb 13 2009, 07:05 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 Bronislav Такой вариант не подойдет?
for(i=0;i<20;i++) ... Sep 4 2015, 06:15
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|