serpol1
-
Постов
3 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Сообщения, опубликованные serpol1
-
-
Порт настроен как цифровой ввод/вывод, я использую аналоговые входы по схеме 3/0, так что на порт Е это не должно влиять, параллельный порт ввода/вывода тоже не использую, вроде в других переф-ых модулях порт Е не используется.
0 -
Контроллер работает с тремя цифровыми термометрами DS18B20, но это как бы не важно. суть проблемы в следующем: вот куски программы
_________________________
#define t1 PORTE,0
#define tt1 TRISE,0
#define t2 PORTE,1
#define tt2 TRISE,1
#define t3 PORTE,2
#define tt3 TRISE,2
________________________
;=============================================
; Начальная установка термометров
;=============================================
ustanovka_term
bcf t1
bcf t2
bcf t3
banksel TRISE
bcf tt1
bcf tt2
bcf tt3
banksel PORTE
movlw D'200'
call delay ...
____________________________________________
или вот другой:
;=============================================
; Чтение 2 byte
;=============================================
read
movlw D'16'
movwf bit
label2re
bcf t1
bcf t2
bcf t3
banksel TRISE
bcf tt1
bcf tt2
bcf tt3
nop
nop
nop
nop
bsf tt1
bsf tt2
bsf tt3
banksel PORTE
movlw D'8'
call delay ...
___________________________________________
так вот, почему-то работает только один бит порта Е, который в программе стоит третьим то есть в данном случае PORTE,2 (t3). (проверял осциллографом все четко, на остальных двух "тишина"). Причем при смене допустим t1, tt1 на t3, tt3 работает PORTE,0 или (t1), на двух других "тишина". В чем проблема не пойму?
0
Помогите С Pic16F874
в PIC
Опубликовано
Alex, я прочитал документ, вы правы, это мой случай, в термометре есть конденсатор включенный параллельно шине данных для случая с "паразитным питанием". попробую заменить команды "bsf" и "bcf" на запись B'00000111' и обнуление. Большое Вам спасибо.