roboforum.ru

Технический форум по робототехнике.

Как грамотнее эмулировать нажатие клавиатуры (AVR)?

Как грамотнее эмулировать нажатие клавиатуры (AVR)?

Digit » 26 окт 2007, 16:51

В общем, такой расклад.
Имеется клавиатура (готовый прибор), которая опрашивает клавиши с какой-то частотой. Частота мне не известна и померять не чем :| Клавиатура имеет стандартную схему 5х3. Т.е. на 5 контактах последовательно выставляется логическая "1", а на 3-х контактах считывается состояние...
Имеется МК AVR (модель конкретная будет выбрана после того, как определюсь с методом решения задачи), который с помощью АЦП мониторит состояние техпроцесса и в зависимости от этого должен "жать" кнопки...
Как это поэлегантнее сделать? Замену клавиатуры не предлагать! :)
Вариантов пока два.
1. Подпаяться к выводам клавы. С максимальной частотой МК проверять, если на одном из 5 выводов "1", то выставить на соответствующем из 3-х входов "1" и держать единичку, пока "1" на выводе не сменится на "0". Но т.к. МК занимается еще и АЦП, то теоретически есть вариант "проморгать" изменение состояния входов-выходов...
2. Поставить 15 транзисторов :D Может кто-нить знает сборку из 16 транзюков в одном корпусе? А то плодить детальки на плате не хочется...

Может есть еще какие-то варианты? Или может у предложенных вариантов есть какие-то существенные достоинства либо недостатки?

Re: Как грамотнее эмулировать нажатие клавиатуры (AVR)?

Myp » 26 окт 2007, 17:16

то теоретически есть вариант "проморгать" изменение состояния

поставить 2 мк :lol:


а вобще какаята странная система ничо не понял нормально поясните чё хотите?
повесить паралельно клавиатуре мк который в зависимости от АЦП должен симулировать нажатие кнопки?

Re: Как грамотнее эмулировать нажатие клавиатуры (AVR)?

Digit » 26 окт 2007, 17:18

Myp писал(а):а вобще какаята странная система ничо не понял нормально поясните чё хотите?
повесить паралельно клавиатуре мк который в зависимости от АЦП должен симулировать нажатие кнопки?


Совершенно в дырдочку верно! :) Или схему нарисовать в пэйнте?

Re: Как грамотнее эмулировать нажатие клавиатуры (AVR)?

avr123.nm.ru » 26 окт 2007, 17:52

Digit писал(а):Частота мне не известна и померять не чем :|


А звуковая плата ПК не подойдет ?

Re: Как грамотнее эмулировать нажатие клавиатуры (AVR)?

Myp » 26 окт 2007, 17:56

чёто у меня аткое ощущение что проблема из ничего :lol:

всё будет успевать цифроватся, анализироватся и нажиматся\
этож не коспический корабль чтоб там 16 MIPS нехватило

но 3 ключа всёже надо буит на выход поставить

Re: Как грамотнее эмулировать нажатие клавиатуры (AVR)?

Digit » 26 окт 2007, 18:16

Myp писал(а):чёто у меня аткое ощущение что проблема из ничего :lol:
всё будет успевать цифроватся, анализироватся и нажиматся\
этож не коспический корабль чтоб там 16 MIPS нехватило
но 3 ключа всёже надо буит на выход поставить

Та это и не проблема вовсе! :) Мне тоже кажется, что 16МГц хватит за глаза. Просто вот думаю, может есть какое-то элегантное и красивое решение, а я по глупости не вижу его...
А 3 ключа зачем? Резистор и все...

avr123.nm.ru писал(а):А звуковая плата ПК не подойдет ?

Подойдет канеш. Возможно позже :roll:

Re: Как грамотнее эмулировать нажатие клавиатуры (AVR)?

rig » 26 окт 2007, 18:42

прерывание можно организовать.
диодами или логикой 'или' собрать 5 выходов в один. прерывание по наличию 1 на выходе. по прерыванию анализ какая строка подсвечивается единичкой, дешифрируем и выставляем в нужный момент 1 на нужной колонке.

второй вариант
5 входов на прерывание 'изменение состояния ноги' далее аналогично п.1
только так я непробовал так. но знаю что можно.
только будет ли 5 ног на прерывание вот в чем вопрос.

External Interrupt Request Tiny/Мega
Pin Change Interrupt Request М168

Re: Как грамотнее эмулировать нажатие клавиатуры (AVR)?

-= Александр =- » 26 окт 2007, 19:15

Можно и без диодов - прерывание по началу сканирования, а дальше - по таймеру.

Re: Как грамотнее эмулировать нажатие клавиатуры (AVR)?

SSG » 27 окт 2007, 09:31

Взять контроллер с тремя входами прерываний и подпаяться к 3 линиям клавы. При возникновении какого-л. прерывания смотрим в нужном ли ряду кнопок производиться опрос. Если да, то устанавливаем ноль на входе нужной пимпы нужным из 5 выходов.
Да, в принципе, и полингом можно молотить. Скорости хватит. :) Но прерывания как-то душевнее. :)

Re: Как грамотнее эмулировать нажатие клавиатуры (AVR)?

Digit » 28 окт 2007, 00:25

Тогда надо с пятью входами прерываний... Сигнал-то идет на пяти линиях, а на три надо будет выставлять... Ну да это тонкости :)
Прерывания душевнее, согласен 8)


Rambler\'s Top100 Mail.ru counter