Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

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

 
Опции темы
Непрочитано 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, время: 23:44.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot