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

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

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

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

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

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

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 07.11.2013, 14:51  
ua3rad
Временная регистрация
 
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ua3rad на пути к лучшему
По умолчанию Датчик температуры DS1820

Всем добрый день!!!
Написал программу для ATMega8 с выводом температуры на LCD. При измерении температуры +24 град на индикаторе +26,5. При измерении температуры +9 на индикаторе +10,5 град. Почему такая ошибка. где я напортачил

Начал выводить код частоты в протеусе и получилось не соответствие даташиту
-0,5 град - FFFE (должно быть FFFF)
-25 град - FFCD (должно быть FFCE)
-55 град - FF91 (должно быть FF92)
При положительной температуре коды соответствуют.
Вложения:
Тип файла: txt DS1820.txt (5.3 Кб, 68 просмотров)
Реклама:
ua3rad вне форума  
Непрочитано 07.11.2013, 16:50  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Датчик температуры DS1820

Delay_ms(1000); смотрю помогло.

wtemp : word;
попробуйте заменить на
wtemp : integer;

насчет преобразования двух байтов принятых с датчика - так думаю, не получится

Цитата:
четыре младших разряда нулевого байта содержат дробную часть результата;
четыре старших разряда нулевого байта содержат четыре младших разряда целой части результата;
три младших разряда первого байта содержат оставшиеся три разряда целой части;
остальные разряды первого байта указывают на знак температуры (+ или -);
float температуру на си приблизительно так получают:
Код:
............................
uint32_t GetTemperature() {
    uint32_t result = 0;
    if (Reset(sensor) != 0) {
        inError();
    } else {
        ScratchPad_t scratchpad;
        WriteByte(sensor, SKIP_ROM);    // Skip ROM
        WriteByte(sensor, READ_SCRATCHPAD);    // Read Scrachpad
        scratchpad.LSB = ReadByte(sensor);
        scratchpad.MSB = ReadByte(sensor);
        Reset(sensor);    // terminate read as we only want temperature
        result = ((scratchpad.MSB ‹‹ 8) | scratchpad.LSB);
    }
    return result;
}
...........

// temperature is store as 7.4 fixed point format (assuming 12 bit conversion)
void displayTemperature(Serial& s) {
    DoConversion();
    uint32_t temp = GetTemperature();
    float f = (temp & 0x0F) * 0.0625;    // calculate .4 part
    f += (temp ›› 4);    // add 7.0 part to it
    s.printf("Temp is %2.1fC\n\r", f);    // display in 2.1 format
}

Последний раз редактировалось oleg110592; 07.11.2013 в 17:56.
oleg110592 вне форума  
Непрочитано 09.11.2013, 11:40  
ua3rad
Временная регистрация
 
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ua3rad на пути к лучшему
По умолчанию Re: Датчик температуры DS1820

наверное дело в спиртовых термометрах. домашний термометр показывает на 2 град больше цифрового. уличный, на 1-1,5 градуса меньше цифрового. я поставил два термометра на улице и оказалось, что домашний показывает температуру на 3 град больше уличного. наверное их делали китайцы. Вопрос про компилятор: На паскале наверное никто не работает и примеры все на СИ. Какой лучше выбрать СИ компилятор CVAVR или mikroC. Лично Ваше мнение.
ua3rad вне форума  
Непрочитано 09.11.2013, 11:52  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Датчик температуры DS1820

формулу можно добить и на паскале, компилятор - лучше сразу IAR, если бесплатно - GCC (есть в составе новой AVR Studio 6, громоздкая штука).
oleg110592 вне форума  
Непрочитано 09.11.2013, 16:56  
ua3rad
Временная регистрация
 
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ua3rad на пути к лучшему
По умолчанию Re: Датчик температуры DS1820

А примеры, уроки, книги для IAR есть? Просто не хочется опять одному сидеть на компиляторе. Меня в общем то устраивает и mikropascal (cи не знаю), но все сидят на СИ. Наверное придется тоже переходить.
ua3rad вне форума  
Непрочитано 09.11.2013, 18:43  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Датчик температуры DS1820

Сообщение от ua3rad Посмотреть сообщение
А примеры, уроки, книги для IAR есть?
В комплекте к AtmelStudio идут примеры для GCC, для ИАРа тоже есть application notes, но где они лежат сейчас - это вопрос, потому как для АВР atmel сейчас продвигает GCC, а Иар у них уже не основной компилятор.

Сообщение от ua3rad Посмотреть сообщение
Наверное придется тоже переходить.
Си - стандарт для программирования МК, лучше на него и ориентироваться.
_Артём_ вне форума  
Непрочитано 09.11.2013, 19:24  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Датчик температуры DS1820

Сообщение от ua3rad Посмотреть сообщение
А примеры, уроки, книги для IAR есть?
думаю это найти можно, книги достаточно хорошей просто си
http://chipenable.ru/index.php/iar-e...o-proekta.html
http://chipenable.ru/index.php/files...s-iar-avr.html
и тут на форуме, думаю подскажут
oleg110592 вне форума  
Непрочитано 09.11.2013, 19:34  
ua3rad
Временная регистрация
 
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ua3rad на пути к лучшему
По умолчанию Re: Датчик температуры DS1820

Большое спасибо
ua3rad вне форума  
Непрочитано 09.11.2013, 22:04  
ua3rad
Временная регистрация
 
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ua3rad на пути к лучшему
По умолчанию Re: Датчик температуры DS1820

oleg110592, как считать серийный номер датчика. Хочу подключить два DS18S20
ua3rad вне форума  
Непрочитано 09.11.2013, 22:37  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Датчик температуры DS1820

http://chipenable.ru/index.php/progr...0-chast-2.html
не пользовался, когда надо два было - на разные пины порта подключал
oleg110592 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Термопресс SD68-combo пробит датчик температуры. tiger62b Производственное оборудование 22 01.05.2014 11:45
Маркировка датчика температуры DS1820 shalan Измерительное оборудование 12 22.10.2011 18:22
Датчик температуры для АКБ Kamikaze778 Измерительное оборудование 2 05.11.2010 21:29
Помогите смоделировать датчик температуры ST_Senya Proteus 5 25.07.2010 14:41
аналог. датчик температуры godz320 Микроконтроллеры, АЦП, память и т.д 34 28.01.2008 22:41


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


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