Страница 2 из 3

Re: Странности с DS18S20

Добавлено: Вт сен 06, 2011 08:38:08
cahek80
md5sum примером убедили.

Re: Странности с DS18S20

Добавлено: Вт сен 06, 2011 12:58:16
Мастер Ломастер
cahek80 писал(а):md5sum примером убедили.
о том, что человека нельзя бить молотком по голове вас тоже придется убеждать на примере? жаль... достаточно ведь прочесть даташит и подумать над прочитанным...

Re: Странности с DS18S20

Добавлено: Вт сен 06, 2011 13:16:30
BOB51
вот поэтому и имееш... :)))
считать можно все что угодно, окромя нужных и правильных данных!
используй нормальные алгоритмы и будет все хорошо 8)
это я для cahek80, жаль не успел вовремя отправить :beer:

Re: Странности с DS18S20

Добавлено: Вт сен 06, 2011 13:57:00
cahek80
BOB51 писал(а):вот поэтому и имееш... :)))
считать можно все что угодно, окромя нужных и правильных данных!
используй нормальные алгоритмы и будет все хорошо 8)
это я для cahek80, жаль не успел вовремя отправить :beer:
Да как сказать, в моем случае виноват именно провод. Сейчас я считываю только два первых байта и все работает прекрасно на пятиметровом проводе :). В планах посещение кардач и эпицентра...
Хотя когда решусь от данного датчика рулить обогревателем, скорее всего начну считать CRC, как и советуют.

Re: Странности с DS18S20

Добавлено: Вт сен 06, 2011 17:42:38
Мастер Ломастер
cahek80 писал(а):Сейчас я считываю только два первых байта и все работает прекрасно ...
а я уже 3 раза сыграл в русскую рулетку и все ништяк. сейчас сыграю в пя

Re: Странности с DS18S20

Добавлено: Вт сен 06, 2011 17:59:15
cahek80
Мастер Ломастер писал(а):
cahek80 писал(а):Сейчас я считываю только два первых байта и все работает прекрасно ...
а я уже 3 раза сыграл в русскую рулетку и все ништяк. сейчас сыграю в пя
Если Вам так хочется поязвить - сходите в какой-нибудь чат, пожалуйста. Вот страничка, по примеру которой была написана моя функция: http://www.mikroe.com/eng/products/view ... o-for-pic/
Можете продолжать рассказывать, что те ребята тоже делают всё неправильно и надо совершенно по-другому.

Re: Странности с DS18S20

Добавлено: Вт сен 06, 2011 22:57:14
Мастер Ломастер
cahek80 писал(а):Можете продолжать рассказывать, что те ребята тоже делают всё неправильно и надо совершенно по-другому.
мне чихать на то, как делают те ребята, поскольку Я ЗНАЮ, КАК НАДО ДЕЛАТЬ - ребята из Dallas Semiconductor наверное больше знают про свои чипы, раз пишут документацию на них, не так ли?

Re: Странности с DS18S20

Добавлено: Ср сен 07, 2011 07:29:03
BOB51
это ж на С :))
а там все на основе библиотечек... возможно какой-то и нехватает(или не та версия) - результат корявая программа :)))

Re: Странности с DS18S20

Добавлено: Ср сен 07, 2011 14:18:39
cahek80
BOB51 писал(а):это ж на С :))
а там все на основе библиотечек... возможно какой-то и нехватает(или не та версия) - результат корявая программа :)))
точнее MikroC, но суть проблемы была не в этом )))
Хотя тема, благодаря форумчанам, уже решена (виновным оказался провод).
Это меня упорно учат, что считать два байта температуры - это противозаконно.

Re: Странности с DS18S20

Добавлено: Ср сен 07, 2011 16:25:31
Мастер Ломастер
cahek80 писал(а):Это меня упорно учат, что считать два байта температуры - это противозаконно.
ни в коем случае! вам можно и на красный свет переходить, и пьяным за руль, и голым в африку... вам можно все. это остальные сирые и убогие будут делать все, как рекомендует производитель... а у вас особый путь.

Re: Странности с DS18S20

Добавлено: Ср сен 07, 2011 17:29:46
cahek80
Вы про КЗ на проводе забыли упомянуть, ага.

Re: Странности с DS18S20

Добавлено: Ср сен 07, 2011 23:47:01
Мастер Ломастер
cahek80 писал(а):Вы про КЗ на проводе забыли упомянуть, ага.
иногда усердие превозмогает и рассудок © К.Прутков.
эти слова можно чуток перефразировать, чтобы они на 100% соответствовали вашей линии поведения - надо лишь слово "усердие" заменить на "упертость".

итак, разбор полетов:
cahek80 писал(а):Вот код, который использую.

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

int GetTemperature()
{
  int temp;
  setGIEoff();
  // сначала считаем температуру - потом сделаем замер
  // так будет быстрее, чем ждать 750 мс
  Ow_Reset(&PORTC, 0);
  Ow_Write(&PORTC, 0, 0xCC);                   // Issue command SKIP_ROM
  Ow_Write(&PORTC, 0, 0xBE);                   // Issue command READ_SCRATCHPAD
  temp =  Ow_Read(&PORTC, 0);
  temp = (Ow_Read(&PORTC, 0) << 8) + temp;
  // считали, теперь запустим новый замер температуры
  Ow_Reset(&PORTC, 0);                         // Onewire reset signal
  Ow_Write(&PORTC, 0, 0xCC);                   // Issue command SKIP_ROM
  Ow_Write(&PORTC, 0, 0x44);                   // Issue command CONVERT_T
  setGIEon();
  temp = temp * 5;
  return temp;
}
если бы вы не поленились сделать так, как описано в документации, вы бы:
1. после подачи RESET обязательно проверяли бы наличие PRESENCE
2. считывали все данные с контролем CRC
первое позволило бы вам зафиксировать наличие КЗ на линии мгновенно и не паритть себе и дургим мозг
второе позволит вам избежать проблемы с обрывом и/или помехами на линии.

вы можете сколько угодно настаивать на своем, упорствуя и ссылаясь на "ребят откуда-то", однако ваш код - лажа, и не перестанет ею быть, пока вы его не измените. а ваше отношение к работе с датчиком (и необходимости соблюдать требования документации) - дилетантское.

Re: Странности с DS18S20

Добавлено: Чт сен 08, 2011 00:19:37
cahek80
Я уже написал, что проблема с датчиком была как раз в проводе, из-за которого и читались все нули. Даже если бы я читал ВСЕ 8 байт в моем случае это бы не помогло, была бы постоянная ошибка и была бы подобная тема, но с правильным на ваш взгляд кодом.
А считать кого-то дилетантом или нет - это ваше право иметь свое мнение.

Re: Странности с DS18S20

Добавлено: Чт сен 08, 2011 06:51:38
md5sum
cahek80 писал(а):Я уже написал, что проблема с датчиком была как раз в проводе, из-за которого и читались все нули. Даже если бы я читал ВСЕ 8 байт в моем случае это бы не помогло, была бы постоянная ошибка и была бы подобная тема, но с правильным на ваш взгляд кодом.
А считать кого-то дилетантом или нет - это ваше право иметь свое мнение.
Можно полюбопытствовать?
А как еще, кроме подсчета CRC программа может понять, что вернувшийся ноль это 0 градусов, а не ошибка? Вы абсолютно уверены, что поменяв провод и уменьшив подтяжку исключили возможные ошибки в будущем?

Re: Странности с DS18S20

Добавлено: Чт сен 08, 2011 07:40:38
BOB51
хммм.... снова "радиоприемник на К155ла3"... :sleep:

Re: Странности с DS18S20

Добавлено: Чт сен 08, 2011 11:03:31
cahek80
BOB51 писал(а):хммм.... снова "радиоприемник на К155ла3"... :sleep:
думаю больше на 561ла7 )))

Re: Странности с DS18S20

Добавлено: Чт сен 08, 2011 11:09:41
МитяРа
cahek80 писал(а):думаю больше на 561ла7 )))
Ещё больше, на К1107ПВ6..
Изображение

Re: Странности с DS18S20

Добавлено: Чт сен 08, 2011 11:14:46
cahek80
md5sum писал(а):А как еще, кроме подсчета CRC программа может понять, что вернувшийся ноль это 0 градусов, а не ошибка? Вы абсолютно уверены, что поменяв провод и уменьшив подтяжку исключили возможные ошибки в будущем?
Дело в том, что код пока находится в разработке. на данном этапе мне с головой хватает считывания значения температуры. когда дойдет дело до управления обогревателем (если дойдет) то тогда да, буду читать 9 байт и сверять CRC. А пока меня абсолютно не смутит, если показания термометра иногда будут "бегать". На форуме я обычно пишу, когда поиски в инете не удались и ничего не получается. да и с более, чем 15 летним стажем в радиоэлектронике как-то обидно слышать "код у тебя говно и ты сам дурак, наделал КЗ в датчиках", неявно высказанное в третьем посте.

Re: Странности с DS18S20

Добавлено: Чт сен 08, 2011 11:16:03
cahek80
МитяРа :o :o :o фигасе.

Re: Странности с DS18S20

Добавлено: Чт сен 08, 2011 11:17:42
МитяРа
cahek80 писал(а):фигасе.
Печка знатная была.. :)))