реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Правильно ли подключил кнопку к порту?, Можно ли так вообще делать?
DmitriyX
сообщение Mar 31 2005, 17:33
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 21-12-04
Пользователь №: 1 581



Сделал схему, изображение которой прилагается.

ldi temp_reg,$00
out DDRB,temp_reg

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

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


Спасибо заранее
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
sK0T
сообщение Mar 31 2005, 18:41
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 241
Регистрация: 22-12-04
Пользователь №: 1 610



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

Внутренние pull-up или pull-down резисторы на лапках МК можно использовать для этой цели, но это уже вопрос устройства конкретного МК.
Go to the top of the page
 
+Quote Post
Waraj
сообщение Mar 31 2005, 20:14
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 17-02-05
Пользователь №: 2 711



Ответ схема будет работать правильно.
Но только в порт, судя по приведенному фрагменту, Вы ничего не пишете, а только конфигурируете (регистр DDRB='0') как 'вход'. Запишете именно в порт B '1' включите внутренний pull-up (однако это не резистор :-), в противном отключите, получив высокоимпедансный вход. Поэтому можно смело подавать любое напряжение внутри диапазона питания без всяких токоограничителей. При инициализации в DDRB пишется '0', так что и здесь все гладко.
Одно непонятно, зачем вообще подавать Uпит, можно ведь обойтись кнопкой с 2-мя контактами, а для 'подтяжки' использовать pull-up.
Go to the top of the page
 
+Quote Post
LeonY
сообщение Mar 31 2005, 20:31
Сообщение #4


Знающий
****

Группа: Админы
Сообщений: 689
Регистрация: 24-06-04
Из: South Africa
Пользователь №: 164



Ну вообще-то не слишком хороршее решение. Как минимум надо подавать 5В через ~10К резистор. А дребезг вы собираетесь давить программно? Можно и так (в некоторых применениях)


--------------------
"В мире есть две бесконечные вещи: Вселенная и человеческая глупость. За Вселенную, впрочем, поручиться не могу". (С)

А. Эйнштейн.
Go to the top of the page
 
+Quote Post
CDT
сообщение Apr 6 2005, 09:45
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 303
Регистрация: 3-03-05
Пользователь №: 3 044



Работать будет несомненно.
Но как отнесется контроллер к случайному включению портов на вывод (в результате сбоя или ошибки в программе)?
Думаю ему не понравиться.


--------------------
Опыт - чудесная вещь: легко использовать, можно продать, трудно пропить.
Go to the top of the page
 
+Quote Post
grave
сообщение Apr 21 2005, 09:32
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 33
Регистрация: 9-12-04
Из: Odessa
Пользователь №: 1 424



Будет работать, но действительно зачем такие извраты? Waraj прав
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016