Есть два датчика DS18B20 ведущих себя довольно странным образом: при понижении температуры (до +3 у одного и +17 у другого) начинают выдавать случайные значения. DS1821 работает без проблем, видимо дело в датчике... Кто-нибудь знает как обойти этот глюк? И глюк ли это?
Счастливо! Дмитрий.
Didn't find your answer? Ask the community — no account required.
D
Dmitry Boyko
"Dmitry Akulov" snipped-for-privacy@f20.n.z2.fidonet.org> сообщил/сообщила в новостях следующее: news: snipped-for-privacy@f20.n.z2.ftn...
А чем ты его опрашиваешь? У меня был подобный прикол когда неправильно были определены временные пределы импульсов, а при изменении температуры они немного плывут, со всеми вытекающими последствиями.
С ув. Дмитрий
D
Dmitry Akulov
Приветствую тебя, Dmitry!
06 Окт 03 19:04, Dmitry Boyko пишет к Dmitry Akulov:
Да, видимо, при охлаждении датчика тайминги плывут, но в какую сторону и на сколько? Датчик опрашивается pic16f84a вот такой процедурой:
IN_BYTE: ; Прием байта в W MOVLW .8 MOVWF _N CLRF I_BYTE IN_BYTE_1: CALL PIN_LO NOP CALL PIN_HI movlw .1 call DELAY_10USEC ; ждем 15 мкс MOVF PORTB, W ; читаем данные с DATA_PIN MOVWF TEMP BTFSS TEMP, DATA_PIN ; проверяем порт BCF STATUS, C ; если 0, включаем признак переноса BTFSC TEMP, DATA_PIN BSF STATUS, C ; если 1 выключаем RRF I_BYTE, F MOVLW .6 ; ждем 65 мкс CALL DELAY_10USEC DECFSZ _N, F GOTO IN_BYTE_1 MOVFW I_BYTE ; возвращаем результат в W RETURN