Переключение вывода на выход в NXP LPC24xx - PullRequest
0 голосов
/ 29 мая 2020

Предположим, наша программа только что запустилась после сброса, поэтому все FIODIR равны 0, а соответствующие контакты являются входами, и, следовательно, они находятся в третьем состоянии (верно?). И предположим, я хочу мгновенно переключить какой-либо вывод на вывод с помощью 1. Тогда, вероятно, я напишу это:

FIOxDIR_bit.Px_xx = 1;
FI0xSET_bit.Px_xx = 1;

Но каково будет состояние контакта между этими двумя командами? Предположительно вывод с 0. Другой вариант выполнения такого переключения:

FI0xSET_bit.Px_xx = 1;
FIOxDIR_bit.Px_xx = 1;

Но в таблице данных указано:

Если какой-либо вывод настроен как вход или как вторичная функция, запись 1 на соответствующий бит в IOSET не имеет никакого эффекта.

Вероятно, то же самое верно и для FIOSET . Именно это мы и делаем в нашем последнем фрагменте кода. Хотя, по моему мнению, этот подход работает хорошо, но я хотел бы иметь для этого некую теоретическую основу.

...