Например TDA7294

Форум РадиоКот • Просмотр темы - Всё по DS18(B/S)20.
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Сб фев 25, 2017 00:40:07



Лабаз У Кота. Там столько вкусного!

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 1029 ]  На страницу Пред.  1 ... 48, 49, 50, 51, 52
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср янв 11, 2017 23:05:18 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 91
Зарегистрирован: Чт дек 28, 2006 09:19:56
Сообщений: 10234
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Zhuk72 писал(а):
При 9-битной конфигурации младшие 3 бита всегда в нуле.
в свойствах датчика протеуса можно настроить дискретность уставки его температуры

_________________
на Си можно написать: main(_,l)char**l;{6*putchar(--_%20?_+_/21&56>_?strchr(1[l],_^"pt`u}rxf~c{wk~zyHHOJ]QULGQ[Z"[_/2])?111:46:32:10)^_&&main(2+_,l);} и это не будет ошибкой


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср янв 11, 2017 23:24:51 
Вымогатель припоя
Аватар пользователя

Карма: 16
Зарегистрирован: Ср янв 29, 2014 09:41:31
Сообщений: 617
Откуда: Баку
Рейтинг сообщения: 0
ARV писал(а):
в свойствах датчика протеуса можно настроить дискретность уставки его температуры

Zhuk72 писал(а):
Я уже проверил в Протеусе при шаге датчика 0.0625*С.


Может выразился не очень, но я имел в виду именно шаг установки температуры.

_________________
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Просто Жук.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср янв 11, 2017 23:57:58 
Открыл глаза
Аватар пользователя

Карма: 2
Зарегистрирован: Сб янв 23, 2016 01:59:59
Сообщений: 65
Откуда: Чебоксары
Рейтинг сообщения: 0
Zhuk72 писал(а):
Я уже проверил в Протеусе при шаге датчика 0.0625*С.
При 9-битной конфигурации младшие 3 бита всегда в нуле.
Выход изменяется (начиная с бита 3), когда прирост достигает 0.5*С, т.е. через каждые 8 шагов.


Согласен, вполне логично.Благодарю за ответ!


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт янв 24, 2017 21:12:27 
Встал на лапы

Зарегистрирован: Чт янв 17, 2013 22:25:30
Сообщений: 92
Откуда: Тула
Рейтинг сообщения: 0
Здраствуйте. Подскажите пожалуйста с преобразованием температуры)
Код:
       
                data[0] = w1_read();//читаем два байта с температурой
      data[1] = w1_read();
                                          //загоняем в двух байтную переменную
      temp = data[1];
      temp = temp<<8;
      temp |= data[0];  /// далее идет преобразование в переменную инт без точки
      
        d1=temp>>1;        //сдвиг вправо 1 части
        d2=temp>>3;     //сдвиг другой
        d3=d1+d2;       // сложение за результатом без точки

Возращаю функцией значение d3 и записываю его в инт.


z=temp_18b20(); // зэт интовая переменная в которой храню преобразование температуры   
     
          p=z>>15 ;//двигаю чтобы проверить знак температуры)
         if (p!=0)
         {
         z=z&(~((1<<11)|(1<<12)|(1<<13)|(1<<14)|(1<<15)));/а здесь попытался инвертировать биты знака чтобы потом работать с чистым числом  но не выходит ) не могу понять почему)
          }


либо я не понял что-то со знаком.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт янв 24, 2017 21:21:04 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 91
Зарегистрирован: Чт дек 28, 2006 09:19:56
Сообщений: 10234
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Tenken писал(а):
Подскажите пожалуйста с преобразованием температуры
прочтите здесь: viewtopic.php?p=2971952#p2971952 и делайте правильно

_________________
на Си можно написать: main(_,l)char**l;{6*putchar(--_%20?_+_/21&56>_?strchr(1[l],_^"pt`u}rxf~c{wk~zyHHOJ]QULGQ[Z"[_/2])?111:46:32:10)^_&&main(2+_,l);} и это не будет ошибкой


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вс янв 29, 2017 17:00:05 
Встал на лапы

Зарегистрирован: Чт янв 17, 2013 22:25:30
Сообщений: 92
Откуда: Тула
Рейтинг сообщения: 0
ещевозник вопрос на счет контрольной суммы. Ибо переодически в индикации вылазиет какая-то хрень ) нашел на форуме такой код:
Код:
   uint8_t
    _crc_ibutton_update(uint8_t crc, uint8_t data)
    {
   uint8_t i;

   crc = crc ^ data;
   for (i = 0; i < 8; i++)
   {
       if (crc & 0x01)
           crc = (crc >> 1) ^ 0x8C;
       else
           crc >>= 1;
   }

   return crc;
    }
написано код рабочий только вот тут нихрена не понял.Я так понял это функцию тоже надо зацикливать на кол-во байт в дс 18б20 и потом сравнивать с последним?


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вс янв 29, 2017 19:39:03 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 91
Зарегистрирован: Чт дек 28, 2006 09:19:56
Сообщений: 10234
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Tenken писал(а):
и потом сравнивать с последним?
не надо сравнивать, надо "зацикливать" ВСЕ данные - если все верно, то в итоге будет НОЛЬ.
но вот код показанной вами функции не проверял я, поэтому не гарантирую его корректность. лучше всего взять гарантированно верный код - из avr-libc (входит в комплект avr-gcc модуль util/crc16.h) или реализовать алгоритм самостоятельно по апноуту производителя.

_________________
на Си можно написать: main(_,l)char**l;{6*putchar(--_%20?_+_/21&56>_?strchr(1[l],_^"pt`u}rxf~c{wk~zyHHOJ]QULGQ[Z"[_/2])?111:46:32:10)^_&&main(2+_,l);} и это не будет ошибкой


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вс янв 29, 2017 20:43:44 
Говорящий с текстолитом
Аватар пользователя

Карма: 21
Зарегистрирован: Сб май 14, 2011 22:16:04
Сообщений: 1535
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Я вот такую функцию делал. Не хочу сказать что именно так и надо делать и что она оптимальна, но проблем не было. Сначала хотел на асме сделать, но решил что сделаю "потом".
Код:
#define dlinaBit 64   
#define defPolinomObr ((uint8_t)0b10001100)
Код:
//функция подсчета CRC8 для DS18B20
//*****************************************************************
uint8_t get_CRC8(uint8_t * pAddrr){   

uint8_t CRC8=0;
   
//--------------------------

uint8_t NumerBit=0;      //номер текущего бита

   while ( NumerBit<(dlinaBit+8) ){
      uint8_t BitRead,BitHi;
      
      if (               //прочитаем значение бита
         (pAddrr[NumerBit>>3]) &   (0x01<<(NumerBit&0x07))   ) BitRead=0x80;   else BitRead=0; 
         
         
      if (!(NumerBit<dlinaBit)) BitRead=0;
      
      //---------
      if (CRC8&0x01) BitHi=1;else BitHi=0;                              //выдвигаемый бит
      
      CRC8>>=1;
      CRC8+=BitRead;
      
      if (BitHi)   CRC8=CRC8 ^ (uint8_t)defPolinomObr;;
      //---------         
   NumerBit++;   
   } //while
   
   
   return CRC8;   
   
}

Tenken писал(а):
Ибо переодически в индикации вылазиет какая-то хрень
А вот периодической хрени быть не должно, у меня есть устройство с DS, кабель метров 15 был (сейчас укоротил), никаких проблем не было. Контрольная сумма "на всякий случай", но не для борьбы с помехами. Если у Вас постоянные ошибки, надо что-то пересмотреть.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вс янв 29, 2017 21:16:39 
Встал на лапы

Зарегистрирован: Чт янв 17, 2013 22:25:30
Сообщений: 92
Откуда: Тула
Рейтинг сообщения: 0
Спасибо большое значит буду думать что не так дальше)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 1029 ]  На страницу Пред.  1 ... 48, 49, 50, 51, 52



Лабаз У Кота. Там столько вкусного!

Часовой пояс: UTC + 3 часа [ Летнее время ]


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

Сейчас этот форум просматривают: AllFatSter и гости: 3


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

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


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