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

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

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

 
Опции темы

Термодатчик LM75AD + ATmega16

Непрочитано 23.11.2010, 00:32  
BIYON_DEGREYV
Прохожий
 
Регистрация: 16.05.2010
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
BIYON_DEGREYV на пути к лучшему
По умолчанию Термодатчик LM75AD + ATmega16

Доброго времени всем. Помогите пожалуйста решить проблему. Вобщем так:

void Term(void){
temp=lm75_temperature_10(0);
{sign='+';
temp=-temp;
};
sprintf(lcd_buffer,''%c%i.%u\xe9C'', sign,temp/10, temp%10);
}

писал в CVAVR через стандартную библиотеку. Но беда в том, что вместо 23 градусов показывает 3. Получается что по какой то причине температура отстает на 20 градусов. Это глюк датчика,
или связано с частотой на которой работает микроконтролер (8МГц)?
Реклама:
BIYON_DEGREYV вне форума  
Непрочитано 23.11.2010, 07:11  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Термодатчик LM75AD + ATmega16

При других температурах как?
Прибавьте 20 и все...
niXto вне форума  
Непрочитано 23.11.2010, 09:06  
nonamedov
Почётный гражданин KAZUS.RUN
 
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Термодатчик LM75AD + ATmega16

Цитата:
Прибавьте 20 и все...
Это не поможет, так как программа не выводит десятки, а ошибка связана с неправильным форматированием вывода.
вот, примерно так:
sprintf(lcd_buffer,''%-i.%-u%сC'',temp/10, abs(temp%10), 0xe9);

и знак выделять специально не надо, тем более что он у Вас непонятно как выделяется.

Последний раз редактировалось nonamedov; 24.11.2010 в 06:53.
nonamedov вне форума  
Непрочитано 29.11.2010, 14:25  
BIYON_DEGREYV
Прохожий
 
Регистрация: 16.05.2010
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
BIYON_DEGREYV на пути к лучшему
По умолчанию Re: Термодатчик LM75AD + ATmega16

Сообщение от nonamedov Посмотреть сообщение
Это не поможет, так как программа не выводит десятки, а ошибка связана с неправильным форматированием вывода.
вот, примерно так:
sprintf(lcd_buffer,''%-i.%-u%сC'',temp/10, abs(temp%10), 0xe9);

и знак выделять специально не надо, тем более что он у Вас непонятно как выделяется.
Да нет, вывод десятков все правильно. А причину решил по другому. К ногам питания припаял кондер на 100мкФ. Наверное микроконтролер создает дополнительные пульсации, так как на плате по питанию стоит кондер на 47мкФ, а в блоке питания 2200мкФ.
BIYON_DEGREYV вне форума  
Непрочитано 01.12.2010, 03:56  
nonamedov
Почётный гражданин KAZUS.RUN
 
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Термодатчик LM75AD + ATmega16

Цитата:
{sign='+';
temp=-temp;
};
А как тут собственно выделяется знак??? И каким образом в этом случае temp получается существенно положительным?
nonamedov вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
USB АЦП на ATmega16 переделать на ATmega8 98mildg1 Микроконтроллеры, АЦП, память и т.д 12 25.09.2010 20:29
Нужна помощь CDC-232 и atmega16 robin7341 Микроконтроллеры, АЦП, память и т.д 0 08.08.2010 00:13
ATmega16 Устройство управления тепличными нагревателями grizko Делимся опытом 21 04.08.2010 19:40


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


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