Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Округление показаний LED в ATMEGA

Непрочитано 10.07.2011, 17:19  
Dimitrij
Временная регистрация
 
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
Dimitrij на пути к лучшему
По умолчанию Округление показаний LED в ATMEGA

С АЦП считываю код, преобразовываю и вывожу на 3-разрядный индикатор.
Код:
 unsigned int u_read(void) 
{
tmp=read_adc(ADCMUX_U); 
tmp*=510;  
tmp/=1023; 
return tmp; 
}

void uindf(unsigned int ul)
{
	d[0]= ul/100;
	ul %=100;
	d[1]=  ul/10;
	ul %=10;
	d[2]= ul; 
}
При подаче на вход АЦП напряжения, к примеру, 25.57 вольт на индикаторе высвечивается число 25.5.
Можно ли округлить показания так, чтобы при сотых долях вольта больше 5, к младшему разряду индикатора прибавлялась 1? Т.е. на индикаторе показывало 25.6?
Нашел в интернет
Цитата:
И если Вы хотите выполнить округление, то это делается
достаточно просто, например:
i = j / 100;
if (j%100 › 50)
++i;
, но можно ли его применить в данном случае и, если да, то как?
Реклама:
Dimitrij вне форума  
Сказали "Спасибо" Dimitrij
warel (28.06.2019)
Непрочитано 10.07.2011, 18:01  
Nfc
Прописка
 
Регистрация: 11.10.2008
Сообщений: 132
Сказал спасибо: 8
Сказали Спасибо 35 раз(а) в 30 сообщении(ях)
Nfc на пути к лучшему
По умолчанию Re: Округление показаний LED в ATMEGA

Добавляйте 5 к tmp после ваших преобразований, будет десятичное округление. Т.е. return tmp+5:
Nfc вне форума  
Сказали "Спасибо" Nfc
warel (28.06.2019)
Непрочитано 10.07.2011, 18:10  
Nfc
Прописка
 
Регистрация: 11.10.2008
Сообщений: 132
Сказал спасибо: 8
Сказали Спасибо 35 раз(а) в 30 сообщении(ях)
Nfc на пути к лучшему
По умолчанию Re: Округление показаний LED в ATMEGA

Пардон, нужно до ваших преобразований это делать и не 5, а 0.5*1023/510 (т.е. около 1) прибавлять к tmp.

Последний раз редактировалось Nfc; 10.07.2011 в 18:25.
Nfc вне форума  
Сказали "Спасибо" Nfc
warel (28.06.2019)
Непрочитано 10.07.2011, 19:15  
Dimitrij
Временная регистрация
 
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
Dimitrij на пути к лучшему
По умолчанию Re: Округление показаний LED в ATMEGA

Nfc,
Что-то не равномерно округляется. При больших напряжениях округляет › 0.02V, а при малых-› 0.08V. Нельзя как то выровнять диапазон?
Dimitrij вне форума  
Сказали "Спасибо" Dimitrij
warel (28.06.2019)
Непрочитано 10.07.2011, 20:19  
Nfc
Прописка
 
Регистрация: 11.10.2008
Сообщений: 132
Сказал спасибо: 8
Сказали Спасибо 35 раз(а) в 30 сообщении(ях)
Nfc на пути к лучшему
По умолчанию Re: Округление показаний LED в ATMEGA

Увы, у вас разрешение АЦП не позволяет такой точности достичь, а с ней и корректного округления. Ещё один разряд бы... Быстродействие , так понимаю, не важно? Можете попробовать усреднять несколько выборок (4...8 в вашем случае) АЦП, возможно выловите из него недостающий разряд таким образом.)))
Nfc вне форума  
Эти 2 пользователя(ей) сказали Спасибо Nfc за это сообщение:
Dimitrij (10.07.2011), warel (28.06.2019)
Непрочитано 10.07.2011, 20:29  
Dimitrij
Временная регистрация
 
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
Dimitrij на пути к лучшему
По умолчанию Re: Округление показаний LED в ATMEGA

Nfc,
Сделал 8 выборок, в принципе меня устраивает. Спасибо!
Dimitrij вне форума  
Сказали "Спасибо" Dimitrij
warel (28.06.2019)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
И снова о LED в освещении... (продолжение холивара) 7Fantomas7 Отвлекитесь, эмбеддеры! 267 08.06.2013 15:53
LED на радиорынках и фирмах встречаю завышение параметров U9 Источники питания и свет 6 20.01.2009 23:52
Параллельное программирование atmega R_V_A Микроконтроллеры, АЦП, память и т.д 8 20.12.2006 12:50


Часовой пояс GMT +4, время: 03:00.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.