Перейти к содержанию
    

одновременное использование I/O портов на AT89C5131

Если P1_0 настроен на выход таймера, то можно ли использовать P1_1 - P1_7 на запись/чтение? Не будет ли проблем с P1_0 при выполнении команды, например:

P1=0xff;

Может ли одновременно работать P1_0 на выход таймера, а P1_5, P1_6, P1_7 на SPI?

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если P1_0 настроен на выход таймера, то можно ли использовать P1_1 - P1_7 на запись/чтение? Не будет ли проблем с P1_0 при выполнении команды, например:

P1=0xff;...

 

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

 

чтение - тут вообще без гимора - просто читать из порта усе :) игнорируя первый бит в дальнейшей логике.

 

с уважением

(круглый)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если P1_0 настроен на выход таймера, то можно ли использовать P1_1 - P1_7 на запись/чтение? Не будет ли проблем с P1_0 при выполнении команды, например:

P1=0xff;

Может ли одновременно работать P1_0 на выход таймера, а P1_5, P1_6, P1_7 на SPI?

Спасибо.

 

На сколько я помню, то на выход подается значение от альтернативной функции и PIO контроллера через ИЛИ, значит не очень хорошо может получиться.

В своей практике использовали подход такой, который не позволял обращаться к пинам используемым для альтернативной функции напрямую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если P1_0 настроен на выход таймера, то можно ли использовать P1_1 - P1_7 на запись/чтение? Не будет ли проблем с P1_0 при выполнении команды, например:

P1=0xff;

Может ли одновременно работать P1_0 на выход таймера, а P1_5, P1_6, P1_7 на SPI?

Спасибо.

 

Запись 0xFF ничего не сделает плохого. Запись нолика придавит альтернативную функцию - будет постоянный ноль. То есть: или писать в порт байт с единицей на этом разряде, или работать с портом побитово.

Конкретно для SPI, имхо, и надо побитно работать - установка бита быстрее установки байта, а конкретно данные - так вообще значительно быстрее сдвинуть аккумулятор в перенос и перенос скопировать в ногу, чем двигать аккумулятор, маскировать, и потом писать в порт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...