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

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

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

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

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

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

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

 
Опции темы
Непрочитано 16.01.2014, 22:59  
YURALL72
Прописка
 
Регистрация: 29.06.2007
Сообщений: 217
Сказал спасибо: 143
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
YURALL72 на пути к лучшему
По умолчанию Re: ds18b20 отрицательная температура

Если бы Протеус глючил с ds18b20,уже бы заметили многие.А так глючу я.
Реклама:
YURALL72 вне форума  
Непрочитано 16.01.2014, 23:42  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,982
Сказал спасибо: 2,554
Сказали Спасибо 11,862 раз(а) в 5,944 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: ds18b20 отрицательная температура

Прокатите через свой софт табличные значения температуры из ДШ (а можно и своих добавить) вместо чтения с датчика. При этом убедитесь в безглючности (или наоборот) своих преобразований.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 17.01.2014, 00:57  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: ds18b20 отрицательная температура

Сообщение от akegor Посмотреть сообщение
О да... Протез - это сурово!
Есть основания не верить?
Ну так проверьте.

...вместо минуса "F"
Миниатюры:
Нажмите на изображение для увеличения
Название: Image1.jpg
Просмотров: 73
Размер:	273.5 Кб
ID:	57524   Нажмите на изображение для увеличения
Название: Image2.jpg
Просмотров: 55
Размер:	63.7 Кб
ID:	57526  

Последний раз редактировалось omercury; 17.01.2014 в 00:59. Причина: не та картинка. :-)
omercury вне форума  
Непрочитано 17.01.2014, 01:23  
YURALL72
Прописка
 
Регистрация: 29.06.2007
Сообщений: 217
Сказал спасибо: 143
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
YURALL72 на пути к лучшему
По умолчанию Re: ds18b20 отрицательная температура

Сообщение от akegor Посмотреть сообщение
Прокатите через свой софт табличные значения температуры из ДШ (а можно и своих добавить) вместо чтения с датчика. При этом убедитесь в безглючности (или наоборот) своих преобразований.
К сожалению я не настолько грамотный(((.Быстрее будет спаять).
YURALL72 вне форума  
Непрочитано 17.01.2014, 01:31  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,982
Сказал спасибо: 2,554
Сказали Спасибо 11,862 раз(а) в 5,944 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: ds18b20 отрицательная температура

Просто выбрать из массива вместо вызова функции чтения температуры.
Конечно, программа немного изменится, но вернуть в обратный зад всегда можно.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Сказали "Спасибо" akegor
YURALL72 (17.01.2014)
Непрочитано 17.01.2014, 01:37  
Eugeniy_SE
Частый гость
 
Регистрация: 15.01.2014
Сообщений: 20
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Eugeniy_SE на пути к лучшему
По умолчанию Re: ds18b20 отрицательная температура

А proteus покажет как борщ варить?Лучше собери реальную схему-быстрей запомнится
Eugeniy_SE вне форума  
Непрочитано 17.01.2014, 02:15  
YURALL72
Прописка
 
Регистрация: 29.06.2007
Сообщений: 217
Сказал спасибо: 143
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
YURALL72 на пути к лучшему
По умолчанию Re: ds18b20 отрицательная температура

Сообщение от akegor Посмотреть сообщение
Просто выбрать из массива вместо вызова функции чтения температуры.
Конечно, программа немного изменится, но вернуть в обратный зад всегда можно.
Я чот даже не думал в этом направлении.Проверил 4 отриц. значения из таблицы ДШ.Подставил их в массив вместо функции чтения из датчиков.
Все 4 корректно отобразились.Неушто Протеус глючит?Ну так ведь не читал
ни разу что-б кто то жаловался на модель ds18b20.Я частенько тут темы шуршу.
YURALL72 вне форума  
Непрочитано 17.01.2014, 02:24  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: ds18b20 отрицательная температура

Сообщение от YURALL72 Посмотреть сообщение
Я чот даже не думал в этом направлении
Та ладно! Ещё на прошлой странице предлагалось:
Сообщение от nahimovv Посмотреть сообщение
в даташите есть таблицы соответствия данных и температуры, которые можно и без датчика забить в проге вручную, посчитать результат и сравнить с тем что в даташите
nahimovv вне форума  
Непрочитано 17.01.2014, 12:03  
av0000
Частый гость
 
Регистрация: 27.08.2008
Адрес: Москва
Сообщений: 29
Сказал спасибо: 6
Сказали Спасибо 1 раз в 1 сообщении
av0000 на пути к лучшему
По умолчанию Re: ds18b20 отрицательная температура

Сообщение от YURALL72 Посмотреть сообщение
Попробовал и так,то-же самое.Похоже ошибка не в обработке отрицат. значений. Но где она может быть если с полож. всё в порядке???Мистика блин.
Что-то мне подсказывает, что нельзя просто взять и изменить знак (© ). Патченный мной "стандартный" код на базе гуляющего по сети ds18x20.c выглядит так:
PHP код:
void DS18x20_ConvertToThemperature(uint8_tdatauint8_tthemp)
{
    
//Store temperature integer digits and decimal digits
    //AV: NB! result temperature stored as positive number with character sign in themp[0]
    
themp[1] = data[0]››4;
    
themp[1] |= (data[1]&0x07)‹‹4;
    
//Store decimal digits
    
themp[2] = (data[0] & 0x0f); 
    
//AV: was *= 5, actual: *= 6.25
    //themp[2] *= 6;
    
if (data[1]›0xFB){
        
themp[1] = 127-themp[1];
        
themp[0] = '-';
        if (
themp[2]) themp[2] = 16 themp[2];
        else 
themp[1]++;
    }
    else if((
data[0]==0x00)&&(data[1]==0x00)) themp[0] = ' '; else themp[0] = '+';
    
themp[2] = (themp[2] * 10) ›› 4// AV: round to 0.1: 0.51 -› 5

В своем логгере использую упрощенный вариант, окрулляющий дробную часть до десятых (т.е. 0.1 превращается в 0 целой части и 1 (не 10) дробной):
PHP код:
DS18x20Value DS18x20_ConvertToTemp(uint8_tdata) {
    
DS18x20Value r;
    
r.dec = (data[0] ›› 4) | ((data[1] & 0x07) ‹‹ 4);
    
r.frac = (data[0] & 0x0F);
    if (
data[1] › 0xFB) {
    
r.dec = -(127 r.dec);
        if (
r.fracr.frac 16 r.frac;
        else 
r.dec--;
    }
    
r.frac = (r.frac 10) ›› 4// NB: 0.5 -› 5, 0.12 -› 1
    
return r;


Последний раз редактировалось av0000; 17.01.2014 в 14:59. Причина: Скопировал древнюю версию кода. Теперь - актуальный из git-a
av0000 вне форума  
Непрочитано 17.01.2014, 16:27  
kosmos440o
Заблокирован
 
Регистрация: 23.09.2007
Сообщений: 761
Сказал спасибо: 84
Сказали Спасибо 352 раз(а) в 151 сообщении(ях)
kosmos440o на пути к лучшему
По умолчанию Re: ds18b20 отрицательная температура

Чо-то ТС намудрил.
Для CVAVR обычно пишут так:
temp=ds18b20_temperature(&rom_code[i][0]); //читаем температуру с выбранного датчика
if (temp›1000){ //если датчик выдаёт больше 1000
temp=4096-temp; //отнимаем от данных 4096
temp=-temp; //и ставим знак "минус"
}
sprintf(lcd_buffer,"t=%i.%u\xdfC",temp,temp%1); //записуемв масив для экрана температуру и всё такое
lcd_clear(); //чистим дисплей перед выводом
lcd_puts(lcd_buffer); //выводим масив на LCD

ссылка

посмотрел свой код

if (tt›4040) {tt=tt-4095;}; // почему не помню, но работает точно

Последний раз редактировалось kosmos440o; 17.01.2014 в 16:31.
kosmos440o вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Atmega128 DS18B20 koznov123 Микроконтроллеры, АЦП, память и т.д 10 01.06.2011 10:39
Минусовая температура в цифровом термометре на ATMega8 vhitman Микроконтроллеры, АЦП, память и т.д 6 25.11.2010 09:59
Подключение DS18B20 r Attiny2313 vaal555 Микроконтроллеры, АЦП, память и т.д 1 27.09.2010 22:06
ATmega8 и DS18B20, не определяется датчик butman Микроконтроллеры, АЦП, память и т.д 21 09.06.2007 22:05


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


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