Надеюсь, ссылки на дружественные форумы ( не конкуренты ) не запрещены? Тем более - своё же собственное сообщение. Вот консультировал человека, но сам потом засомневался. https://programmersforum.ru/showthread. ... ost1866507 Ведь не приснилось же мне такое? Есть такая фича? Т.е. это включение-отключение подтяжки?
Подтяжка вкл записью в PORT, при 0 в DDR. PIN только для чтения. ps: почитал по ссылке сообщение от digitalis, интересно стало. Завтра в железе попробую.
Так запись в бит PIN.bit единицы приводит к инверсии состояния этого вывода... Это для большинства АВРок справедливо... (режим toggling the pin) А относительно "подтяжки"... так там еще в одном регистре надо флажок ее активации установить (к примеру у тинек 13/2313 это PUD =0 в MCUCR)... Исправил досадну очепятку... Шклерозь однако... (Прот PIB)...
Последний раз редактировалось BOB51 Пт июн 28, 2024 08:35:48, всего редактировалось 1 раз.
Запись 1 в бит PORTа эту единицу в нём и устанавливает, пиши её хоть сто раз. А вот Т-триггерный режим порта вывода реализован парадоксальным образом: записью в регистр ввода, к выводу, казалось бы, отношения не имеющего. Starichok51 так я же и говорил:
По мне, очень полезная фишка. В DS приводится использование команды SBI для переключения одного бита, но никто не запрещает работать командой OUT PINx,R.
Для АВРок с такой организацией портов нет разницы между прямым выводом 1 в регистр PINx и командой SBI PINx.X. Единственно что при SBI модифицируется только один бит (вывод) порта, а при OUT PINx,Rn все биты, где в Rn была 1. И да... надо в каждом конкретном случае смотреть документацию МК насчет данного исключения.
Начиная с определенных моделей (лень уточнять). Запись в PINX меняет состояние порта. Не подтяжки. Отсюда появилась этакая оптимизация. Когда можно менять переключать состояние порта. Если DDRX не трогаем. А меняем PINX. Тогда да. Условно, если порт переключился в единицу. То типа да. Включили подтяжку. То есть. DDRX равен нулю. PORTX переключился в единицу. То да. Условно сыграли подтяжкой.
Хороший пост. С внутренним противоречием. Железу, подключённому к пину, по-моему, глубоко до лампочки - условно там подтяжка вкл.-откл. или безусловно. Она есть - или её нет. И точка .
Никаких внутренних противоречий. Если DDRX равен 1 играем, то при записи в PINX играем состоянием PORTX. Верхними и нижними транзисторами. Если DDRX равен 0. То играем только транзистором подтяжки.
Интересно. Зачем так. Писать. Это типа. Я один такой. Оригинальный.
_________________ Платы для HLDI - установки лазерной засветки фоторезиста. ФоторезистOrdyl Alpha 350 Жидкое олово для лужения плат (видео) - самое лучшее и только у меня. Паяльные маски XV501T-4 и KSM-S6189 (5 цветов). Заказ печатных плат - pcbsmac@gmail.com
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения