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

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

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

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

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

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

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

 
Опции темы
Непрочитано 04.07.2007, 18:03  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Работа с DS1621

Люди объясните этот код
signed int read_low_temp() { // Returns degrees F (-67 to 127)
signed int datah, datal;
signed long data;

i2c_start();
i2c_write(0x90);
i2c_write(0xaa);
i2c_start();
i2c_write(0x91);
datah=i2c_read();
datal=i2c_read(0);
i2c_stop();

data=datah;
data=data*9;
if(bit_test(datal,7))
{
if(data ‹ 0)
data -= 4;
else
data += 4;
}
data = (data / 5) + 32;

if(data › 127)
data = 127;

return((int)data);
}
Не пойму к чему это преобразование,свой код написал не работает.Делал так считывал старший байт температуры,если он отрицательный инвертиловал его и прибавлял единицу,если положительный то оставлял без изменений.В протеусе все работает нормально.Но собрал в железе показывает 267 градус,когда в комнате примерно 25 градусов,если прикладываеш палец,начинает увеличиватся последняя цифра,значит работает,но подсчет не правельный.Попробую написать как в билиотеке и попробывать,но хотелось бы знать что к чему.
Реклама:
CERGEI1982 вне форума  
Непрочитано 04.07.2007, 19:45  
dimonbest
Гражданин KAZUS.RU
 
Аватар для dimonbest
 
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
dimonbest на пути к лучшему
По умолчанию

стандартный ответ: проект в студию...
dimonbest вне форума  
Непрочитано 04.07.2007, 19:59  
AndryG
Вид на жительство
 
Регистрация: 22.06.2006
Адрес: Украина
Сообщений: 308
Сказал спасибо: 19
Сказали Спасибо 32 раз(а) в 24 сообщении(ях)
AndryG на пути к лучшему
По умолчанию

Напишите в каком формате 1621 выдает температуру и Вам предложат несколько вариантов красивых преобразований ... просто кто давно с ними работал - не хочет возится и искать данные, а алгоритмы .. они в голове "постоянно"

По красивым преобразованиям идея и статейка ... в конце топика
AndryG вне форума  
Непрочитано 05.07.2007, 13:48  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию

Кто просил проект? (делал в протеусе 7.1 SP2)

Прикрепленный файл: 1022714.rar
CERGEI1982 вне форума  
Непрочитано 05.07.2007, 13:50  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию

Сообщение от AndryG
Напишите в каком формате 1621 выдает температуру и Вам предложат несколько вариантов красивых преобразований ... просто кто давно с ними работал - не хочет возится и искать данные, а алгоритмы .. они в голове "постоянно"
Да мне само преобразование надо с DS1621,чтоб подсчитал в двоичный результат,а дальше сам переведу в двоично-десятичный.Да и чтоб минус сохранялся в отдельной переменый,чтоб передавать функции индикатора его.
CERGEI1982 вне форума  
Непрочитано 05.07.2007, 14:15  
AndryG
Вид на жительство
 
Регистрация: 22.06.2006
Адрес: Украина
Сообщений: 308
Сказал спасибо: 19
Сказали Спасибо 32 раз(а) в 24 сообщении(ях)
AndryG на пути к лучшему
По умолчанию

Вот я и говорю ... напишите ... в каком виде таймер дает температуру .. типа что там и где в считанных байтах ... а мы Вам поведаем как преобразовать в нужный Вам вид ... кстати .. в Каком виде Вам нужно получить температуру?

Меня, например, устраивало unsigned int "в десятых градуса"
AndryG вне форума  
Непрочитано 05.07.2007, 14:47  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию

Сообщение от AndryG
Вот я и говорю ... напишите ... в каком виде таймер дает температуру .. типа что там и где в считанных байтах ... а мы Вам поведаем как преобразовать в нужный Вам вид ... кстати .. в Каком виде Вам нужно получить температуру?

Меня, например, устраивало unsigned int "в десятых градуса"
Я ж писал уже,что считываю только старший байт,а младший откидываю,без всяких сотых,только целое число,к чему мне такая точность.
CERGEI1982 вне форума  
Непрочитано 05.07.2007, 15:11  
AndryG
Вид на жительство
 
Регистрация: 22.06.2006
Адрес: Украина
Сообщений: 308
Сказал спасибо: 19
Сказали Спасибо 32 раз(а) в 24 сообщении(ях)
AndryG на пути к лучшему
По умолчанию

РРРРРРРРРРрррррррррррррррррр!

Вчитайтесь в мои слова ... "в каком формате считывается температура с датчика?" Я работал с 18в21 -- там младший нибл младшего байта - дробная часть температуры ... старший нибл младшего байта и младший нибл старшего - целая часть .... старший нибл старшего байта - указывает знак.
Имя такие данные можно думать о преобразовании.

Если Вам трудно прицепить картинку с даташита к сообщению, то я вообще не хочу искать этот даташит.
AndryG вне форума  
Непрочитано 05.07.2007, 15:26  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию

Только без нервов
Вот чтение с ds1621

-- Прилагается рисунок: --

CERGEI1982 вне форума  
Непрочитано 05.07.2007, 15:28  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию

А вот так температура в двоичном измерении(также как ты описал с датчиком 18b21)

-- Прилагается рисунок: --
CERGEI1982 вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
замена DS1621 на DS1631 demchic Микроконтроллеры, АЦП, память и т.д 10 03.07.2009 00:22
Подключение датчиков температуры ds1621 к LPT компьютера psionrevo Автоматика и аппаратура связи 0 14.01.2008 15:42
mega8535+ds1621+CVAVR чё-то не хочет luck26 Микроконтроллеры, АЦП, память и т.д 6 13.05.2007 16:17


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


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