DS18b20 + ATTiny2313 = -79

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

DS18b20 + ATTiny2313 = -79

Сообщение *Trigger* »

Доброго времени суток.
Собрал я термометр. Всё работает, на иногда (не всегда) при чтении температуры из датчика на дисплее выскакивает -79. В чём проблема???
Прошивка вот:
термометр.c
(3.76 КБ) 367 скачиваний
Проект в CVAVR:
термометр.rar
(1.34 КБ) 216 скачиваний
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Реклама
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Re: DS18b20 + ATTiny2313 = -79

Сообщение *Trigger* »

up
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Реклама
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Re: DS18b20 + ATTiny2313 = -79

Сообщение *Trigger* »

Помогите!!!! :roll: :roll: :roll: :roll:
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: DS18b20 + ATTiny2313 = -79

Сообщение urry »

это нормально. Вы применяете готовую библиотеку далласовского датчика, а затем мешаете ей своими прерываниями таймера.
перепишите библиотеку сами.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Re: DS18b20 + ATTiny2313 = -79

Сообщение *Trigger* »

Спасибо большое! Я писать библиотеки не умею, так что буду перед чтением отключать таймер, выводить вместо прерывания 0b00, а после чтения включать таймер. Как думаете, работать будет???
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Реклама
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: DS18b20 + ATTiny2313 = -79

Сообщение ChipKiller »

*Trigger* писал(а):Я писать библиотеки не умею....
...в этом нет ничего сложного

Код: Выделить всё

uchar DS18b20_init(void){  
    uchar cnt;    
     DDRD.Ds18b20=1; // линию в "0"
          delay_us(480);
     #asm("cli")
     DDRD.Ds18b20=0; // отпустим линию
     delay_us(5);
     cnt=20;     
         while(cnt--){ // ждем ответа 50 мкс
            if(PIND.Ds18b20==1){ delay_us(1);}
            else { 
                    #asm("sei") 
                    delay_us(480);
                    goto end_init; }
            }
     #asm("sei")     
end_init:     
     return cnt; 
}
по аналогии, глядя в datasheet, напишите DS18b20_read и DS18b20_write и все.....
Реклама
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Re: DS18b20 + ATTiny2313 = -79

Сообщение *Trigger* »

ChipKiller писал(а):

Код: Выделить всё

     cnt=20;
              while(cnt--){ // ждем ответа 50 мкс
            if(PIND.Ds18b20==1){ delay_us(1);}
Поясните, пожалуйста, как работают эти строки.
В даташите http://pdf1.alldatasheet.com/datasheet- ... 18B20.html на странице 20 мне не понятно, что значат заштрихованные поля. И что значат диаграммы, где написано 15, 15, и 30 us (и подобные)???
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: DS18b20 + ATTiny2313 = -79

Сообщение ChipKiller »

*Trigger* писал(а):Поясните, пожалуйста, как работают эти строки.

Код: Выделить всё

 
........
    cnt=20;     
         while(cnt--){ // ждем ответа 50 мкс
            if(PIND.Ds18b20==1){ delay_us(1);} // если Ds18b20 не ответил "0" ждем ....

            else {  // отклик Ds18b20 (при этом cnt!=0) - даем задержку 480us
                    #asm("sei")
                    delay_us(480);
                    goto end_init; }
            }
     #asm("sei")     
end_init:     
     return cnt; 
... если не было ответа - на выходе 0 ( cnt=20 - реально хватает и 20 мкс)
*Trigger* писал(а):что значат заштрихованные поля
... если "все так плохо", погуглите есть перевод datasheeta на русском
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Re: DS18b20 + ATTiny2313 = -79

Сообщение *Trigger* »

Под заштрихованными полями я имел в виду косую штриховку (редкую). Вменяемого перевода я не нашёл.
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: DS18b20 + ATTiny2313 = -79

Сообщение ChipKiller »

*Trigger* писал(а):Вменяемого перевода я не нашёл.
... вот "невменяемый" http://usbsergdev.narod.ru/DOC/DS18B20_RU.pdf
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Re: DS18b20 + ATTiny2313 = -79

Сообщение *Trigger* »

Спасибо.
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»