Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Правильно ли подключил кнопку к порту?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
DmitriyX
Сделал схему, изображение которой прилагается.

ldi temp_reg,$00
out DDRB,temp_reg

Вопрос такой: правильно ли я сделал, что выключил подтягивающий резистор, записав в PORTB значение 0?

Можно ли вообще подавать на порты микроконтроллера голое напряжение 5В, если оно идет от стабилизатора? Может быть нужно поставить какой-нибудь резистор между кнопкой и портом для ограничения тока?
Или схема будет правильно работать при конфигурации порта DDRB=PORTB=0 ?


Спасибо заранее
sK0T
Ассемблер для меня какой-то иностранный. Я всё как-то больше по Microchip. Поэтому — из общих соображений:
1) Подключать прямо +5В на лапку МК в принципе конечно можно, особенно если он тоже от +5В работает.
2) Однако кнопку лучше использовать по назначению: построить а-ля делитель напряжения (например, жёсткий вариант: питание через резистор 10 кОм на лапку МК, эта лапка кнопкой замыкается на землю. Следует впрочем проверить по документации на Ваш МК применимость подобной схемы. Ещё лучше сделать всё по уму на основе идеи про делитель напряжения и знания про механизм работы TTL-логики. :) )

Внутренние pull-up или pull-down резисторы на лапках МК можно использовать для этой цели, но это уже вопрос устройства конкретного МК.
Waraj
Ответ схема будет работать правильно.
Но только в порт, судя по приведенному фрагменту, Вы ничего не пишете, а только конфигурируете (регистр DDRB='0') как 'вход'. Запишете именно в порт B '1' включите внутренний pull-up (однако это не резистор :-), в противном отключите, получив высокоимпедансный вход. Поэтому можно смело подавать любое напряжение внутри диапазона питания без всяких токоограничителей. При инициализации в DDRB пишется '0', так что и здесь все гладко.
Одно непонятно, зачем вообще подавать Uпит, можно ведь обойтись кнопкой с 2-мя контактами, а для 'подтяжки' использовать pull-up.
LeonY
Ну вообще-то не слишком хороршее решение. Как минимум надо подавать 5В через ~10К резистор. А дребезг вы собираетесь давить программно? Можно и так (в некоторых применениях)
CDT
Работать будет несомненно.
Но как отнесется контроллер к случайному включению портов на вывод (в результате сбоя или ошибки в программе)?
Думаю ему не понравиться.
grave
Будет работать, но действительно зачем такие извраты? Waraj прав
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.