Ответ: Добавлю до кучи (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SERG~ANT 05 февраля 2004 г. 10:01
В ответ на: задача опросить кнопку и если нажата то выполнить чтото (интересует не именно как сделать, а именно как сделать правильно и оптимально), а про стиль Си, это другой вопрос, в одном уверен есть люди которые пишут оптимальный и понятный код на Си, все остальные (ну и я также) пишут как получится, лишь бы работало, и задача тут не при чем. отправлено 1 05 февраля 2004 г. 09:07

A: Кнопка: 1 или n по каждому отдельному входу
B: Тип кнопки: контактная;"сухой контакт"-герконовая,
оптическая;"датчик холла" -магнитная.
пезостатическая, плёночная (на ёмкостном эффекте)
и чёрт знает какая.
С: Типы сканирования: по отжатию, по нажатию (НЗ или НР),
допускается одновременное нажатие нескольких или пораздельное с устранением конфликта в матричном исполнении
программное устранение антидребезга или аппаратное (тригер) или совмещённое (с RC|C-фильтрами), с автоповтором после нажатия (и "с" паузой или "без"), Сканирование по цифровым входам контроллера или аналоговым, с обработкой(реакцией на прерывание по нажатию любой или при обращения в цикл сканирования), сканирование постоянное/циклическое или с предварительным анализом на предмет:не нажата ли какая-нибудь кнопка(не путать с анализом по прерыванию), с запоминанием в отдельном буфере-стеке последовательное нажатие кнопок или однорегистровое сохранение кода и.т.д и.т.п (с выдачей писков, там всяких миганий индикаторов, обработкой событий и т.д. и.т.п).

Пока, думаю, достаточно.:) И каждая из этих задач/реализаций искуссно выполняется различными вариантами (раздельно-присутствующими в той или иной программе/подпрограмме контроллера или все ВМЕСТЕ).
Однозначности тут нет не было и, скорей всего не будет! :)

И на С всё это хозяйство весьма успешно решается (не хуже, чем в ASM). И всё исправно работает.

З.Ы.Ну так, какая же там кнопка? :)

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru