Микроконтроллеры | Индикация нажатой кнопки |
|
---|---|---|
choroh: Теперь нажимаем кнопку на другом пине, сажаем выход 1 на корпус, сжигаем порт.Нет, порт не сгорит, если вывод сконфигурировать как выход с нулевым уровнем. Это и требуется для зажигания светодиода, который подключен анодом к питанию через резистор. Получится что даже если выход с активным нулем коротить кнопкой, то ничего страшного. Конечно если ошибиться в программе и сконфигурировать вывод порта как выход с активным высоким уровнем, то да, будет гореть порт. Ну а что делать, по другому не вижу как задачу решить без "тырканья" порта, надо будет аккуратнее. |
|
|
choroh: Нажали кнопку, засветился соответствующий светодиод, порты перестроились, как выходы. На данном пине выводится 0, на остальных 1 Перестраивать на выход надо только тот порт, по которому нажали кнопку, а остальные не трогать, т.е. они останутся входами, я здесь алгоритм chav1961 имею ввиду, на него опираюсь. |
|
|
Не хватает выводов у МК? Почитайте тут статью "Большие возможности м... |
|
|
еще можно триггеры поставить |
|
|
BCluster: еще можно триггеры поставить... Можно и на триггерах конечно, но вот какая штука, я специально ушел от схемы на логике из 9 корпусов и наконец-то решил заняться освоением МК, построив на нём схему, которая на логике. Так что лучше помучаюсь, но сделаю на МК, пусть трудится Ну правда, не думаю, что для МК это сверхзадача. |
|
|
Digital: Каким образом можно сделать так, чтобы индицировать светодиодом, подключенным к выводу порта МК, нажатие кнопки, которая висит на том же выводе порта? И зачем это ? Какое чисто практическое применение этого ? Хочешь выводы экономить добавь shift registr . Ну или регистр памяти . |
|
|
Sweet Moon: Еще в цепь светодиода обычно ставят резистор, можно кнопку поставить после него, тогда даже если порт в состоянии выхода, он будет на время нажатия нагружен не на корпус, а на этот резистор.. |
|
|
Digital: Получится что даже если выход с активным нулем коротить кнопкой, то ничего страшного. |
|
|
Прикинул по вашим требованиям. Получилась такая программа. Добавил еще антидребезг кнопок. См. аттач. // обработчик прерываний по переполнению таймера Если интересно, есть работающий проект в Протеусе. |
|
|
Спасибо Zandy, подумаю над этим вариантом Но, стоп, больше не подсказывать , а то привыкну к такой поддержке. В протеусе не надо, я в vmlab-е пока (на протеус у меня антивирь ругается). П.С.: а почему в обработчике прерываний, а не в главной функции программы? У меня прерывание по переполнению уже используется, не хотелось бы его еще больше затягивать. |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |