Форум РадиоКот https://radiokot.ru/forum/ |
|
Всё по DS18(B/S)20. https://radiokot.ru/forum/viewtopic.php?f=61&t=64022 |
Страница 52 из 59 |
Автор: | ARV [ Ср янв 11, 2017 22:05:18 ] |
Заголовок сообщения: | Re: Всё по DS18(B/S)20. |
Zhuk72 писал(а): При 9-битной конфигурации младшие 3 бита всегда в нуле. в свойствах датчика протеуса можно настроить дискретность уставки его температуры
|
Автор: | Zhuk72 [ Ср янв 11, 2017 22:24:51 ] |
Заголовок сообщения: | Re: Всё по DS18(B/S)20. |
ARV писал(а): в свойствах датчика протеуса можно настроить дискретность уставки его температуры Zhuk72 писал(а): Я уже проверил в Протеусе при шаге датчика 0.0625*С. Может выразился не очень, но я имел в виду именно шаг установки температуры. |
Автор: | ROMan2947 [ Ср янв 11, 2017 22:57:58 ] |
Заголовок сообщения: | Re: Всё по DS18(B/S)20. |
Zhuk72 писал(а): Я уже проверил в Протеусе при шаге датчика 0.0625*С. При 9-битной конфигурации младшие 3 бита всегда в нуле. Выход изменяется (начиная с бита 3), когда прирост достигает 0.5*С, т.е. через каждые 8 шагов. Согласен, вполне логично.Благодарю за ответ! |
Автор: | Tenken [ Вт янв 24, 2017 20:12:27 ] |
Заголовок сообщения: | Re: Всё по DS18(B/S)20. |
Здраствуйте. Подскажите пожалуйста с преобразованием температуры) Код: 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)));/а здесь попытался инвертировать биты знака чтобы потом работать с чистым числом но не выходит ) не могу понять почему) } либо я не понял что-то со знаком. |
Автор: | ARV [ Вт янв 24, 2017 20:21:04 ] |
Заголовок сообщения: | Re: Всё по DS18(B/S)20. |
Tenken писал(а): Подскажите пожалуйста с преобразованием температуры прочтите здесь: viewtopic.php?p=2971952#p2971952 и делайте правильно
|
Автор: | Tenken [ Вс янв 29, 2017 16:00:05 ] |
Заголовок сообщения: | Re: Всё по DS18(B/S)20. |
ещевозник вопрос на счет контрольной суммы. Ибо переодически в индикации вылазиет какая-то хрень ) нашел на форуме такой код: Код: uint8_t написано код рабочий только вот тут нихрена не понял.Я так понял это функцию тоже надо зацикливать на кол-во байт в дс 18б20 и потом сравнивать с последним?
_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; } |
Автор: | ARV [ Вс янв 29, 2017 18:39:03 ] |
Заголовок сообщения: | Re: Всё по DS18(B/S)20. |
Tenken писал(а): и потом сравнивать с последним? не надо сравнивать, надо "зацикливать" ВСЕ данные - если все верно, то в итоге будет НОЛЬ. но вот код показанной вами функции не проверял я, поэтому не гарантирую его корректность. лучше всего взять гарантированно верный код - из avr-libc (входит в комплект avr-gcc модуль util/crc16.h) или реализовать алгоритм самостоятельно по апноуту производителя. |
Автор: | Z_h_e [ Вс янв 29, 2017 19:43:44 ] |
Заголовок сообщения: | Re: Всё по DS18(B/S)20. |
Я вот такую функцию делал. Не хочу сказать что именно так и надо делать и что она оптимальна, но проблем не было. Сначала хотел на асме сделать, но решил что сделаю "потом". СпойлерКод: #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 был (сейчас укоротил), никаких проблем не было. Контрольная сумма "на всякий случай", но не для борьбы с помехами. Если у Вас постоянные ошибки, надо что-то пересмотреть.
|
Автор: | Tenken [ Вс янв 29, 2017 20:16:39 ] |
Заголовок сообщения: | Re: Всё по DS18(B/S)20. |
Спасибо большое значит буду думать что не так дальше) |
Автор: | krasdok [ Чт мар 30, 2017 09:08:08 ] |
Заголовок сообщения: | Нужна прошивка для подключения датчиков температуры ds18b20 |
Здравствуйте! Нужен пример для AtmelStudio 4 на С++ для работы с датчиком температуры ds18b20 с выводом на LCD 1602+atmega32a Очень жду помощи... |
Автор: | ARV [ Чт мар 30, 2017 09:40:50 ] |
Заголовок сообщения: | Re: Нужна прошивка для подключения датчиков температуры ds18 |
Воспользуйтесь поиском - примеров ПОЛНО, правда, не на С++, а на просто Си. На плюсах, на сколько мне известно, такой ерундой никто не заморачивался. |
Автор: | krasdok [ Чт мар 30, 2017 14:45:57 ] |
Заголовок сообщения: | Re: Нужна прошивка для подключения датчиков температуры ds18 |
Может на форуме есть примеры рабочие??? |
Автор: | acckyiboxxx [ Чт мар 30, 2017 14:53:34 ] |
Заголовок сообщения: | Re: Нужна прошивка для подключения датчиков температуры ds18 |
https://www.google.ru/search?num=100&ne ... nxpvSRnI7w как-то так , инфы море. |
Автор: | krasdok [ Чт мар 30, 2017 20:54:16 ] |
Заголовок сообщения: | Re: Нужна прошивка для подключения датчиков температуры ds18 |
Ваша ссылка мне не помогла. Зависает Третий пример из интернета пробую и ноль... Помогите разобраться... |
Автор: | ARV [ Чт мар 30, 2017 22:02:57 ] |
Заголовок сообщения: | Re: Нужна прошивка для подключения датчиков температуры ds18 |
http://radiokot.ru/lab/controller/18 http://radiokot.ru/lab/controller/19/ http://radiokot.ru/circuit/digital/measure/135/ http://radiokot.ru/circuit/digital/measure/46/ http://radiokot.ru/circuit/digital/home/24/ http://radiokot.ru/circuit/digital/home/26/ http://radiokot.ru/circuit/digital/home/41/ http://radiokot.ru/circuit/digital/home/61/ http://radiokot.ru/circuit/digital/home/69/ И это только на этом сайте, да и то мне уже влом стало копипастить ссылки... Вам не стыдно? Добавлено after 1 minute 23 seconds: Re: Нужна прошивка для подключения датчиков температуры ds18b20 Я правда в списке ссылок с разбегу залимонил несколько проектов на PIC... они вам не подойдут... но еще есть минимум 50 (!!!) проектов термометров на Радиокоте - дерзайте! |
Автор: | acckyiboxxx [ Чт мар 30, 2017 22:41:45 ] |
Заголовок сообщения: | Re: Нужна прошивка для подключения датчиков температуры ds18 |
ARV, я полагаю человеку надо такое решение https://www.chipdip.ru/product/sth0014ur , хотел-бы собрать сам - разобрался-бы как работает и слепил-бы. |
Автор: | krasdok [ Пт мар 31, 2017 04:49:53 ] |
Заголовок сообщения: | Re: Нужна прошивка для подключения датчиков температуры ds18 |
Не судите строго, я только учусь... С LCD без проблем подключил, ножками на вход/выход научился управлять. Сделал часики. С прерываниями разобрался. С шаговиками разобрался. А вот датчик температуры меня в ступор ввел. Мучаюсь и не пойму ничего вроде должно работать а не хочет... Толи код кривой, то ли я как-то не так... Купил для пробы датчик вот тут http://jewelfox.ru/lot.php?id=8439. Может что не так подключаю (тоже в интернете смотрел)... диод при подключение питания должен же гореть, а у меня не горит... |
Автор: | trengtor [ Пт мар 31, 2017 07:46:37 ] |
Заголовок сообщения: | Re: Нужна прошивка для подключения датчиков температуры ds18 |
Выводы проинициализируй... |
Автор: | ARV [ Пт мар 31, 2017 08:26:50 ] |
Заголовок сообщения: | Re: Нужна прошивка для подключения датчиков температуры ds18 |
acckyiboxxx писал(а): я полагаю человеку надо такое решение именно такое решение есть среди показанных мной ссылок: http://radiokot.ru/circuit/digital/home/61/ - кстати, это моя разработка (основа), там и ссылка на мой вариант есть. |
Автор: | AVR_hobby [ Пт мар 31, 2017 08:43:17 ] |
Заголовок сообщения: | Re: Нужна прошивка для подключения датчиков температуры ds18 |
Ну и я свои "пять копеек" вставлю. Вот сайтик с довольно разжеванным обучением. А вот статья про сам датчик, а здесь и термометр, как раз по всем вашим требованиям) |
Страница 52 из 59 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |