Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
02.08.2007, 18:00
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Снова кнопки....
Очередной заказ бл...
Прошлый с одной кнопкой сделал.
Теперь новые запросы.
Клавиатура - матрица 10строк х 2 колонки
Строки перебираем к561ие8.
Ни кто не видел подобного (код на си)?
Железо похожее видел в весах , вроде МЕРА называються.
|
|
|
|
02.08.2007, 20:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
А счетчик зачем ? Врагов запутать ? Нужен дешифратор 4Х16 или 2х8 - 2штуки.На 4 выходы пика его навесить, а по 2 входам считывать.
|
|
|
|
02.08.2007, 20:17
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Сообщение от urry
|
А счетчик зачем ? Врагов запутать ? Нужен дешифратор 4Х16 или 2х8 - 2штуки.На 4 выходы пика его навесить, а по 2 входам считывать.
|
Железо не я делал , заказчик ...А он как говориться всегда прав.
И на клаву отвел 4 вывода.
Хотя можно и 3 обойтись , но я ему про это не скажу
|
|
|
|
02.08.2007, 20:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
А сброс счетчика, когда он досчитал до 10 ? В принципе, можна сбросить аппаратно, через диоды, согласен..Но дешифратор после счетчиа ... ?
|
|
|
|
02.08.2007, 20:45
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Сообщение от urry
|
А сброс счетчика, когда он досчитал до 10 ? В принципе, можна сбросить аппаратно, через диоды, согласен..Но дешифратор после счетчиа ... ?
|
нах дешифратор?
Счетчик то десятичный.
На выходе получаеться "бегущая" 1.
И вот блин засада , не вьезжаю пока как мне
отжатие кнопки ловить.
Хотя мысли кой какие есть.
Обработчик клавы вместе с драйвером 7сегментого дисплея в любом случае будет в прерывании по таймеру 0.
По таймеру 2 считаю реал тайм.
|
|
|
|
02.08.2007, 21:05
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Да, можно взять ие10 - 2 4х разрядных счетчика и считывать кнопки (2 разряда) после 1, 2 ,4, 8 импульсов.. Дальше понятно. Но тебе ведь нужно 10 выводов, а не 8.
|
|
|
|
02.08.2007, 21:10
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Сообщение от urry
|
Да, можно взять ие10 - 2 4х разрядных счетчика и считывать кнопки (2 разряда) после 1, 2 ,4, 8 импульсов.. Дальше понятно. Но тебе ведь нужно 10 выводов, а не 8.
|
Кнопок 20 штук ...(2 столбца по 10 строк)
Ну в принципе железо грамотное.
Это я тупею .
|
|
|
|
03.08.2007, 07:26
|
|
Вид на жительство
Регистрация: 05.09.2006
Сообщений: 360
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Сообщение от urry
|
Да, можно взять ие10 - 2 4х разрядных счетчика и считывать кнопки (2 разряда) после 1, 2 ,4, 8 импульсов.. Дальше понятно. Но тебе ведь нужно 10 выводов, а не 8.
|
561ИЕ8 - счетчик со встроенным дешифратором - 10 выходов.
2 dosikus
Не понятно в чем проблема. Готового кода не дам. Рад бы, да нет. На C почти не пишу, все на asm, для меня это понятней, без неопределенностей.
Все операции с кнопками делаешь по таймеру. Для подавления дребезга необходимо иметь три состояния кнопок: текущее (его ты опрашиваешь в этом прерывании), предидущее (то что было в предидущем прерывании) и окончательное (если текущее и предидущее состояние кнопки совпадают, то в окончательное записывается состояние кнопки)
В таймере же можешь поизвращаться с длительностю нажатия кнопок. Например ввести для каждой кнопки бит длительного или двойного нажатия. Для этого нужно на каждую кнопку завести счетчик прерываний (или два), измеряющий длительность нажатия (и отжатия).
В программе имеешь уже готовые биты: кнопка нажата, длительное нажатие и др., зависит от потребности. Не паришься с ожиданием. Недостаток - иногда получается довольно длинное и сложное прерывание. Плюс - при смене кнопочного железа переписываешь только кусок прерывания.
Удачи.
|
|
|
|
03.08.2007, 09:34
|
|
Прописка
Регистрация: 21.10.2005
Сообщений: 251
Сказал спасибо: 11
Сказали Спасибо 22 раз(а) в 17 сообщении(ях)
|
для четкой синхронизации на счетчик надо подавать сигнал сброса ,а затем считать импульсы подаваемые на счетный вход и ждать перемен на двух выходах матрици.Как только появится единичка ,остановить подачу импульсов ,запустить таймер для отсчета интервала на дребезг ну а дальше исходя из количества насчитанных мк импульсов и столбца на котором появилась единичка формируется код клавиши .
Кстати в таком варианте как раз обходимся 4 выводами 2 на столбци ,1 сброс счетчика ,1 тактовые импульсы для счетчика.
|
|
|
|
03.08.2007, 09:47
|
|
Прописка
Регистрация: 21.10.2005
Сообщений: 251
Сказал спасибо: 11
Сказали Спасибо 22 раз(а) в 17 сообщении(ях)
|
Схемка
-- Прилагается рисунок: --
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:53.
|
|