Что-то не въезжаю я с DS18S20...
|
|
AndrF |
Дата: Пт, 15.11.2013, 15:32 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
145
Замечания:
±
На сайте с 03.02.2012
Статус:
Offline
|
Что-то не въезжаю я с DS18S20... Просьба пояснить, где у меня может быть затык.
Пробую любой из находящихся здесь примеров - DS-ка не хочет работать.
Единственное - нашел в интернете человека у которого была примерно та же проблема - тот код что он привел работает и у меня.
Но это-же ненормально вручную дергать ножку и принимать/отправлять битики.
Почему у меня отказывается работать нормальный код, используемый везде - c использованием OWrite и ORead?
Питание на датчике нормальное, подтяжка есть, код сто раз проверен...
Программа на протоне, запускается из-под MPLAB...
Сообщение отредактировал
AndrF - Пт, 15.11.2013, 15:34
|
|
|
|
MiXaS |
Дата: Пт, 15.11.2013, 16:38 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
549
Замечания:
±
На сайте с 02.10.2010
Статус:
Offline
|
Я прошу прощения, что без объяснений, вот код. Точно рабочий. Там еще есть расчет контрольной суммы, но при желании его можно убрать. Коменты вроде есть, будут вопросы задавайте.
Код под DS 18b20, что бы у вас заработало правильно с ds18s20, нужно поменять строку
rew=Temp * 0.0625
на rew=Temp * 0.5
И все должно работать!Добавлено (15.11.2013, 16:06) --------------------------------------------- А опишите симптомы. Добавлено (15.11.2013, 16:38) --------------------------------------------- У даласа была партия датчиков, которые не сбрасывались. Сначало могли работать, а через н раз опроса зависали. Это были одни из первых датчиков, назывались ds1820. Потом их трохи допилили и стали называться ds1820+. Я на ebay купил 20 штук DS18B20. Все проверил - отлично работают, оссобенно мне в них нравится это цена одного бита. Я где-то встечал в сети, как бороться с кривыми датчиками.
Сообщение отредактировал
MiXaS - Пт, 15.11.2013, 16:02
|
|
|
|
shaman |
Дата: Пт, 15.11.2013, 17:12 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
178
Замечания:
±
На сайте с 07.11.2011
Статус:
Offline
|
День добрый попробуйте этот код , должен работать. Он для DS18S20
Device 16F877 XTAL 4
Declare LCD_TYPE ALPHA Declare LCD_DTPIN PORTB.4 Declare LCD_RSPIN PORTB.2 Declare LCD_ENPIN PORTB.3 Declare LCD_LINES 2 Declare LCD_INTERFACE 4
PORTB_PULLUPS = true ALL_DIGITAL = TRUE
SYMBOL DQ = Portb.0
Dim Sign as Byte Dim Cnt as Byte Dim Count_Per_Deg as Byte Dim Temp as Word Dim Temp_Dec as Byte
Delayms 150 Cls Print $FE,$40,$06,$09,$09,$06,$00,$00,$00,$00
Again: OWRITE DQ, 1,[$55,$10,$31,$C5,$C8,$00,$00,$00,$F4,$44]
REPEAT DELAYMS 25 OREAD DQ,4, [Cnt]UNTIL Cnt <> 0
OWRITE DQ,1,[$55,$10,$31,$C5,$C8,$00,$00,$00,$F4,$BE] OREAD DQ,2,[Temp.LOWBYTE,Temp.HIGHBYTE,Cnt,Cnt,Cnt,Cnt,Cnt,Count_Per_Deg]
Temp_Dec = (6.25 * Cnt) If Temp.8=1 Then Temp=(Temp.LowByte ^ $FF) >> 1 If Cnt = 0 then Temp = Temp + 1 Sign = "-"
Else
Temp=(Temp >> 1) Sign = "+" Temp_Dec = 100 - Temp_Dec Endif
Print At 1,1, Sign, Dec Temp, ".", Dec DIG Temp_Dec, 1, 0,"C "
Goto Again
Сообщение отредактировал
shaman - Пт, 15.11.2013, 17:16
|
|
|
|
anatol |
Дата: Пт, 15.11.2013, 17:24 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
471
Замечания:
±
На сайте с 10.02.2010
Статус:
Offline
|
AndrF, а у меня почему-то ноги в туфли не лезут. Вот когда одеваю соседние, то лезут вот их фото.... Где ваша прога, а конкретно тип ПИКа, частота кварца. Строки работы с температурным сенсором. Это надо чтобы понять как часто вы опрашиваете сенсор и параметры импульсов опроса.
|
|
|
|
MiXaS |
Дата: Пт, 15.11.2013, 17:40 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
549
Замечания:
±
На сайте с 02.10.2010
Статус:
Offline
|
Цитата anatol ( ) Вот когда одеваю соседние, то лезут вот их фото....
|
|
|
|
ADMIN |
Дата: Пт, 15.11.2013, 19:29 | Сообщение # 6 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Я бы схему глянул для начала
|
|
|
|
AndrF |
Дата: Пт, 15.11.2013, 22:17 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
145
Замечания:
±
На сайте с 03.02.2012
Статус:
Offline
|
Все - разобрался. Ошибка у меня была во втором параметре ORead/OWrite...
|
|
|
|