Например TDA7294

Форум РадиоКот • Просмотр темы - ds18b20 и atmega8 вывод температуры с десятичным знаком
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт мар 28, 2024 11:38:09

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 8 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: ds18b20 и atmega8 вывод температуры с десятичным знаком
СообщениеДобавлено: Пн май 23, 2011 11:25:13 
Открыл глаза

Зарегистрирован: Пн май 23, 2011 11:23:39
Сообщений: 78
Рейтинг сообщения: 0
добрый день, у меня такая проблемка: не знаю как вывести температуру с десятичным знаком.

код такой

devices=w1_init(); //ищем датчики
while(devices>0) //бесконечный цикл, если датчик подключен
{
temper=ds18b20_temperature(0);
if(temper != -9999) // нет ошибок
{
//Анализ на отрицательную температуру
if( temper>1000 ) { temper=4096-temper; temper=-temper; show_digital(temper, 0,4);}
real_digital(temper,0);
} else real_digital(666,0); // если датчиков нет
delay_ms(500);
}
}
real_digital(666,0); // если датчиков нет
delay_ms(500);
}

буду очень рад помощи.
всё работает и отображается на 7seg индикторе. но оч хочется вывод с десятичным знаком градуса.
буду очень рад помощи.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 и atmega8 вывод температуры с десятичным знаком
СообщениеДобавлено: Пн май 23, 2011 17:08:35 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Так поставьте точку в нужном месте и всё :)
Не вижу проблемы....


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 и atmega8 вывод температуры с десятичным знаком
СообщениеДобавлено: Пн май 23, 2011 17:18:18 
Открыл глаза

Зарегистрирован: Пн май 23, 2011 11:23:39
Сообщений: 78
Рейтинг сообщения: 0
я получаю число например 24 его и вывожу. дело в том что функция опроса датчика выдаёт на выходе тип float, а я ставлю int. и вот вопрос как сделать чтобы вывести целую часть и потом знать дробную.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: ds18b20 и atmega8 вывод температуры с десятичным знаком
СообщениеДобавлено: Пн май 23, 2011 18:15:06 
Мудрый кот
Аватар пользователя

Карма: 25
Рейтинг сообщений: 79
Зарегистрирован: Вт окт 05, 2010 01:08:57
Сообщений: 1800
Рейтинг сообщения: 0
123

_________________
KIT


Последний раз редактировалось O-LED Пн май 23, 2011 18:21:26, всего редактировалось 2 раз(а).

Вернуться наверх
 
Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: ds18b20 и atmega8 вывод температуры с десятичным знаком
СообщениеДобавлено: Пн май 23, 2011 18:17:05 
Открыл глаза

Зарегистрирован: Пн май 23, 2011 11:23:39
Сообщений: 78
Рейтинг сообщения: 0
ок объявил как Float и в переменной будет значение температуры, дальше надо дробную часть отделить (1 знак достаточно) как??


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: ds18b20 и atmega8 вывод температуры с десятичным знаком
СообщениеДобавлено: Пн май 23, 2011 18:20:07 
Мудрый кот
Аватар пользователя

Карма: 25
Рейтинг сообщений: 79
Зарегистрирован: Вт окт 05, 2010 01:08:57
Сообщений: 1800
Рейтинг сообщения: 0
вот так
int temper

temper=ds18b20_temperature(0)*10

теперь
temper /10 - целая часть
temper%10 - дробная часть

_________________
KIT


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 и atmega8 вывод температуры с десятичным знаком
СообщениеДобавлено: Вт май 24, 2011 02:03:12 
Родился

Зарегистрирован: Пн фев 15, 2010 21:54:49
Сообщений: 9
Рейтинг сообщения: 1
Датчик выдает 16 битный код тоесть максимальное значение равно 65536 по этому температурная переменная будет иметь значение int
Чтобы расчитать реальную минусовую температуру необходимо от максимального значения отнять значение которое принял МК
тоесть temperature=65536-temperature;

далее создаем две переменных int temp, Temp;

вычислим целое число temp=temperature>>4; сдвигаем temperature на 4 бита вправо
узнаем десятки Temp=temperature&0x000F переменной Temp присваивается только 4 младших бита которые сдвинали в предыдущем вычислении
вычисляем десятки unsigned char temp_min = ((Temp * 10) / 16);

Остается только преобразовать tem в DEC и поставить точку перед младшим - 4-м разрядом индикатора


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ds18b20 и atmega8 вывод температуры с десятичным знаком
СообщениеДобавлено: Вт май 24, 2011 20:20:06 
Сверлит текстолит когтями
Аватар пользователя

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0
Rhime писал(а):
Датчик выдает 16 битный код...
из которого значащими в являются только 12 бит максимум. Поэтому ИМХО для уменьшения расчетов проще хранить целую и дробную часть раздельно (как два байта). Дробную часть легче и быстрее выводить с помощью табличной подстановки.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y