Свежие обсуждения
Микроконтроллеры

ATtiny45 настройка PB3

1 3 4

Без прописывания вышеописанной строки , 1 назначается автоматически.

 

THEDOGG: 1 назначается автоматически
Кем она там назначается?
Верховным советом СССР?

 

Рискну предположить, что программистом.
Зачем такие сложности при перестройке одного разряда порта?
Чем не устраивают простые и понятные операции? http://www.pro-radio.ru/controllers/12504/2013/05/01/22-32-22/

 

smg123: Рискну предположить, что программистом.
Вражеским, засевшим в чипе?
Gregory: Копируем порт DDROUT в регистр TMPIR0. Бит 3 был настроен в "0"

smg123: Зачем такие сложности при перестройке одного разряда порта?
Где Вы сложности видите?
Подобная конструкция работает в ПИКе уже более шести лет.
А нужна она, так как это - програмный UART, и запись в порт должна производиться строго через определённые временнЫе интервалы. Поэтому все ветки выравнены (включая вход в обработчик прерывания), и минимизированы по времени.
Но, собственно, к делу это отношения не имеет. Вопрос в том, почему, при считывании "0" превращается в "1"?

 

Ничего не понял.
1. Вы вывод в порт делаете через регистр DDR?
2. Причем тут программный UART к настройке нужного разряда порта на вход? Он что, периодически меняет назначение и становится выходом?
3. Может стоит освежить информацию о портах АВ...

Gregory: почему без этого "0" превращается в "1"

Например, считано из DDR было 0b00001000 а после eor с 0b00010000 запишется в DDR 0b00011000
А по маске (выделено жирным выше доп. строка) Вы оставляете выходом только PB.4

 

smg123: Ничего не понял
Очень жаль.
Возможно, для Вас это - новость, но таким способом получают "Псевдо Z-состояние" выходных портов.
Однако, это собственно не имеет отношения к сути проблемы.

smg123: считано из DDR было 0b00001000
Да уже давно понятно что там "1" считывается. Вопрос в том, откуда она считывается, если в регистр "0" записан?
Но, судя по предыдущим постам, Вы вряд ли мне на него ответите...

 

"Псевдо Z-состояние выходных портов" - это работа порта на вход без подтяжки к питанию.
И достигается это простыми операциями - записью 0 в регистры DDR и Port. Это не новость.
Я не экстрасенс, всех аппаратно-программных тонкостей Вашего устройства не знаю, поэтому вряд ли Вам отвечу.
Да и вряд ли ответит кто-то другой.
Похоже Вам придется смириться с дополнительной строкой в коде или...
продолжить монолог.

 

smg123: Да и вряд ли ответит кто-то другой.

Вот вот , так что не удивляйся если не получишь внятного ответа на свой вопрос

 

smg123: Это не новость
Зачем же тогда спрашиваете?

smg123: всех аппаратно-программных тонкостей Вашего устройства не знаю
А тут и не надо быть экстрасенсом. Достаточно просто знать аппаратно-программные тонкости данного чипа.

THEDOGG: так что не удивляйся
Troll detected

 

установка и чтение статуса порта вроде идут(!!!) через разные регистры