реклама на сайте
подробности

 
 
> На PICe непонятки с портом, при упр. ножкой сбрасывается и другая...
afad
сообщение Aug 8 2005, 15:42
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 212
Регистрация: 26-08-04
Пользователь №: 545



На PIC16F819:
Выполняю команду установки выхода:
BSF PORTA,1 - выход 1 устанавливается в 1.
Хочу установить или сбрость выход 4:
BCF PORTA,4 или BSF PORTA,4
Сбрасывается 1, вывод 4 управляется нормально.
В чем может быть дело?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Daniil
сообщение Aug 9 2005, 01:49
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 3-09-04
Из: Russia, Novosibirsk
Пользователь №: 590



Может быть имеет место быть проблема "Чтение-модификация-запись"? Выдержка из ФАКа:

Можно предполагать, что выполняется просто сброс бита, управляющего выводом порта. Фактически происходит чтение состояния всего порта ввода/вывода, затем сбрасывается требуемый бит и новое значение записывается в порт ввода/вывода (или регистр). Любая команда, зависящая от текущего значение регистра является командой со структурой "чтение - модификация - запись" (ADDWF, SUBWF, BCF, BSF, INCF, XORWF и др.). Команды, независящие от текущего значения регистра не являются командами "чтение - модификация - запись" (MOVWF, CLRF и др.).

Рассмотрим одну ситуацию выполнения команд "чтение - модификация - запись" для порта ввода/вывода. Например, все биты регистра TRISB настраивают PORTB на выход, и на всех выводах PORTB установлен высокий логический уровень сигнала. Теперь Вы настраиваете RB3 как вход, на котором присутствует низкий логический уровень. Выполняете команду BCF PORTB,6, чтобы на RB6 установить низкий логический уровень. Если Вы опять настроите вывод RB3 как выход, то на нем будет формироваться низкий логический уровень, хотя ранее Вы устанавливали высокий логический уровень. При выполнении команды BCF для другого вывода порта (RB6) происходит чтение состояния всего порта (включая 0 на RB3). Бит 6 изменяется к требуемому значению, но т.к. на RB3 был прочитан '0', он будет записан в защелку порта. Когда вывод будет настроен на выход, новое значение будет передано на вывод.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 09:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01374 секунд с 7
ELECTRONIX ©2004-2016