Перейти к содержанию
    

Эта схема должна работать если на PB0 выставлять НОЛЬ о на входах проверять ноль при включенных подтягивающих резисторах, без резисторов когда поднести палец к кнопке на входе может быть все что угодно (за счет наводки)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Теоретически на PB0 можно генерировать меандр, а на PA0 или PA1 измерять частоту и тем самым определять нажатие, но согласитесь, это не самый оптимальный и надёжный путь. Есть проверенное и логичное решение, просто воспользуйтесь им.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Значит схема будет такой?PortA=&b11111111, с включеными подтягивающими резисторами.При нажатии кнопки я должен регистрировать на PA0 или PA1 логическии 0?Тоесть если включены подтягивающие резисторы то на всем порте соответственно держится логическая 1.Кнопки заземлены.Как только нажимаю кнопку логическая 1 идущая с порта А встречается с землёй и получается коротыш?.Или подтягивающие резисторы и включаются для того чтобы не было коротышей?

post-33355-1227615245_thumb.jpg

Изменено пользователем JimBaton

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так как выводы PA0 и PA1 еще при инициализзации должны быть сконфигурированы на вход, то никакого коротыша не получается, а подтягивающий резистор то и нужен, для того чтобы на входе небыло непонятного состояния (или 1 кнопка отпущена или 0 кнопка нажата), это и есть "классика" для подключения малого колличества кнопок (которая во всех учебниках описана)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

TechMike

подьясните что вы имеете ввиду под словом подпирал?

 

В моем случае была кнопка на один из портов tiny2313. Кнопка замыкала вход на землю, от +питания стоят резистор 1.5к на вход МК. Таким образом я в программе ловлю лог.0 на входе МК, что означает нажатие кнопки. И как показала практика, это хорошо защищило от помех по силовой части.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

кароче все получилось

 

пока пробую писать на Бэйсике.Вот код.Как для начинающего это кажется немного странным.

 

$regfile = "m16def.dat"

Config Portc = Output

Config Porta = Input

Config Portb = Output

Porta = &B11111111 включаем подтягивающие резисторы и соответственно порт выдает логическии 1

 

 

Do

If Pina.0 = 0 Then Portc = &B11110000 при появлении на ноге А0 лог 0, записываем в PortC 11110000

 

If Pina.1 = 0 Then Portc = &B00001111

If Pina.2 = 0 Then Portc = &B00111100

If Pina.3 = 0 Then Portc = &B11111111

Loop

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ничего, привыкните, потом смешно будет :). Кстати и светодиоды обычно включают анодом к питанию, а катодом через резистор к МК. Считается, что в этом направлении МК бОльший ток держит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Считается, что в этом направлении МК бОльший ток держит.

Считалось. Сейчас у большинства контроллеров нагрузочная способность выводов сбалансирована для втекающих и вытекающих токов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в микросхемах на КМОП элементах верхний выходной ключ на p-канальном транзисторе, а нижний на n-канальном транзисторе, у p-канального сопротивление открытого канала немного выше чем у n-канального, поэтому при том же самом токе нагрузке падение на выходных ключах элемента вслучае подключения нагрузки к плюсу будет немного менше и соответственно немного меньше и рассеиваемая мощность (гдето на 0,1 вольна меньше, и в даташите это в электрических характеристиках тоже написано), это хоть и 2 мВт на элемент но всеже...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ничего, привыкните, потом смешно будет :). Кстати и светодиоды обычно включают анодом к питанию, а катодом через резистор к МК. Считается, что в этом направлении МК бОльший ток держит.

 

Неудобно подключать таким образом диод так как возникает путаница.Если нужно зажечь диод, то на порт нужно подать не лог 1 а лог 0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неудобно подключать таким образом диод так как возникает путаница.Если нужно зажечь диод, то на порт нужно подать не лог 1 а лог 0

А что Вам мешает перед записью в порт инвертировать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну все равно как-то не так.Не привычно.Ну со временем-то конечно ко всему привыкаешь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну все равно как-то не так.Не привычно.Ну со временем-то конечно ко всему привыкаешь.

Не надо привыкать к плохому.

1. Будь мэном;) используй С, а не Basic (это намного полезней и продуктивней).

2. Привыкай задавать числовым константам имена - тогда будет совершенно неважно что есть 0, а что 1.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну у меня есть свои соображения насчет бэйсика.Хочу хоть чутка разобраться что такое контроллер.На бэйсике же всяко полегче для начинающего.А потом и на СИ переберусь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну у меня есть свои соображения насчет бэйсика.Хочу хоть чутка разобраться что такое контроллер.На бэйсике же всяко полегче для начинающего.А потом и на СИ переберусь.
Неверный ответ.

Настоятельно рекомендую ASM, а никак уж не basic - он никаким боком не будет полезен, коме Экселя и Аксеса. Поймёшь ASM никаких трудностей с С вообще не будет. Это я как бывший препод со стажем говорю;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...