Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 05.08.2005, 23:38  
prottoss
Прописка
 
Регистрация: 17.03.2005
Сообщений: 122
Сказал спасибо: 1
Сказали Спасибо 33 раз(а) в 7 сообщении(ях)
prottoss на пути к лучшему
По умолчанию

Может быть ты и прав, я еще досконально все не протестировал. Но к понедельнику планирую все закончить. Как раз в понедельник и клава будет. Там и проверю
Реклама:
__________________
http://prottoss.com
prottoss вне форума  
Непрочитано 05.08.2005, 23:40  
prottoss
Прописка
 
Регистрация: 17.03.2005
Сообщений: 122
Сказал спасибо: 1
Сказали Спасибо 33 раз(а) в 7 сообщении(ях)
prottoss на пути к лучшему
По умолчанию

Я просто хотел показать как все это можно быстро обработать
__________________
http://prottoss.com
prottoss вне форума  
Непрочитано 06.08.2005, 15:59  
prottoss
Прописка
 
Регистрация: 17.03.2005
Сообщений: 122
Сказал спасибо: 1
Сказали Спасибо 33 раз(а) в 7 сообщении(ях)
prottoss на пути к лучшему
По умолчанию

Да, уважаемый ObitJr, Вы были абсолютно правы. Но, повторяю, код был набросан и не протестирован.
теперь первый цикл do...while выглядит вот так:

do
{ KB_Port_Setup();
KB_DDR |= scanner;// устанавливаем одну линию на вывод
KB_PORT &= ~scanner;// устанавливаем на этой линии "0"
num_wires--; // уменьшаем счетчик циклов и выполняем задержку для уст. состояния порта
key &= (KB_PIN | KB_NO_USE | scanner); // считываем состояние линий, отсекая возможные нули в неиспользуемых линиях, и ноль на линии сканирования
scanner ››= 1; // формируем новый скан-код
}
while(num_wires);


Вот теперь на самом деле все работает правильно, но я еще модифицировал немного код, о чем будет написано на странице моего сайта
__________________
http://prottoss.com
prottoss вне форума  
Непрочитано 06.08.2005, 17:31  
Dozer
Временная регистрация
 
Регистрация: 04.04.2005
Сообщений: 77
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Dozer на пути к лучшему
По умолчанию

Так всё можно осуществить по 3-м проводам с использованием десятичного счётчика. Причём количество кнопок практически неограниченное и можно одновременно нажимать хоть все кнопки!
На вход счётчика - сброс и счёт, а на выход - кнопки с диодами.
И это обойдётся дешевле, чем с использованием ног контроллера. Так же на этот счётчик можно посадить какой-нибудь индикатор
__________________
No pain - no gain. Ha-ha
Dozer вне форума  
Непрочитано 06.08.2005, 18:01  
Стиральная машина
Гость
 
Сообщений: n/a
По умолчанию

если есть АЦП, то можно сколько угодно повесить кнопок
каждая кнопка через резистор своего номинала, а АЦП измеряет что нажали, НО это при условии что всегда нажимают какую-то одну кнопку. И понадобится только один провод
 
Непрочитано 06.08.2005, 18:11  
Dozer
Временная регистрация
 
Регистрация: 04.04.2005
Сообщений: 77
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Dozer на пути к лучшему
По умолчанию

Да, но это при условии хороших кнопок и АЦП, короткого соединительного провода. Такое я видел в каком-то CD плеере, там было кнопок 7
__________________
No pain - no gain. Ha-ha
Dozer вне форума  
Непрочитано 06.08.2005, 19:02  
prottoss
Прописка
 
Регистрация: 17.03.2005
Сообщений: 122
Сказал спасибо: 1
Сказали Спасибо 33 раз(а) в 7 сообщении(ях)
prottoss на пути к лучшему
По умолчанию

Сообщение от Стиральная машина
если есть АЦП, то можно сколько угодно повесить кнопок
каждая кнопка через резистор своего номинала, а АЦП измеряет что нажали, НО это при условии что всегда нажимают какую-то одну кнопку. И понадобится только один провод
Ну, вообщето вопрос был без применения навесных элементов. А на счет, вообще, использования АЦП в качестве дешифратора кнопок я против, очень много минусов:
1. Значительное использование времени работы МК;
2. Малая помехоустойчивость
3. Необходимость использования МК с АЦП
4. Дорого
5. Практически не возможно использовать в аппаратуре с батарейным питанием

Скорее всего это еще не все минусы.

К плюсам могу отнести толко использование одной линии для (теоретически) не ограниченного количества кнопок. На самом деле количество кнопок ограничивает разрядность АЦП и тербования к помехоустойчивости. Самый помехоустойчивый девайс с таким принципом работы клавиатуры будет при количестве кнопок на входе АЦП = 1
__________________
http://prottoss.com
prottoss вне форума  
Непрочитано 06.08.2005, 19:07  
prottoss
Прописка
 
Регистрация: 17.03.2005
Сообщений: 122
Сказал спасибо: 1
Сказали Спасибо 33 раз(а) в 7 сообщении(ях)
prottoss на пути к лучшему
По умолчанию

Сообщение от Dozer
Так всё можно осуществить по 3-м проводам с использованием десятичного счётчика. Причём количество кнопок практически неограниченное и можно одновременно нажимать хоть все кнопки!
На вход счётчика - сброс и счёт, а на выход - кнопки с диодами.
И это обойдётся дешевле, чем с использованием ног контроллера. Так же на этот счётчик можно посадить какой-нибудь индикатор
Вот тут я с тобой не согласен, дешевле, если между микроконтроллером и кнопками ничего больше нет, даже резисторов - одни провода, кнопки и ... МК
__________________
http://prottoss.com
prottoss вне форума  
Непрочитано 06.08.2005, 21:40  
Стиральная машина
Гость
 
Сообщений: n/a
По умолчанию

Сообщение от prottoss
Сообщение от Стиральная машина
если есть АЦП, то можно сколько угодно повесить кнопок
каждая кнопка через резистор своего номинала, а АЦП измеряет что нажали, НО это при условии что всегда нажимают какую-то одну кнопку. И понадобится только один провод
Ну, вообщето вопрос был без применения навесных элементов. А на счет, вообще, использования АЦП в качестве дешифратора кнопок я против, очень много минусов:
1. Значительное использование времени работы МК;
2. Малая помехоустойчивость
3. Необходимость использования МК с АЦП
4. Дорого
5. Практически не возможно использовать в аппаратуре с батарейным питанием

Скорее всего это еще не все минусы.

К плюсам могу отнести толко использование одной линии для (теоретически) не ограниченного количества кнопок. На самом деле количество кнопок ограничивает разрядность АЦП и тербования к помехоустойчивости. Самый помехоустойчивый девайс с таким принципом работы клавиатуры будет при количестве кнопок на входе АЦП = 1
На счёт батарейного питания ничего не было сказано. Все велосипеды уже изобретены. Окройте любый бытовой девайс с кнопками и внимательно посмотрите как там устроено. Универсальных решений нет
 
Непрочитано 06.08.2005, 21:48  
Gnider
Почётный гражданин KAZUS.RU
 
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
Gnider на пути к лучшему
По умолчанию

Вот сколько я занимаюсь МК так никогда не парился с кнопками сколько бы их не было.
Просто вешал их на входы (свободные или нет), делал фильтр от дребезга (лучше всего 5 отчетов из .
В итоге получалось быстро и совсем немного места и что самое главное стабильно работало.

Тоже самое с зажиганием LED матриц и шкал (по простоте).

Что мы обсуждаем?
Удельное количество кнопок на одну линию?
в простейшем случае B=N
если надо то можно B=(N/2)^2
если АЦП то в зависимости от схемы B›10*N
если использовать клавиатуры с контроллером то еще больше.

Если надо могу еще способов привести кучу.

Универсального способа нету. Он будет каждый раз разный - от схеме к схеме.


Я бы лучше пообсуждал различные варианты фильтрации
нажатий как программные так и аппаратные.
Gnider вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сенсорная клавиатура EVGENIY1962 Автоматика и аппаратура связи 9 11.04.2012 13:46
MIDI-клавиатура R-a-v-e-n Микроконтроллеры, АЦП, память и т.д 2 22.06.2009 19:07
Дистанционная клавиатура (RC-5 -> PS/2) swona Микроконтроллеры, АЦП, память и т.д 3 26.06.2008 11:45
AVR клавиатура crashzoom Микроконтроллеры, АЦП, память и т.д 3 20.03.2007 19:09
клавиатура EVGENIY1962 Микроконтроллеры, АЦП, память и т.д 3 17.08.2006 14:08


Часовой пояс GMT +4, время: 13:31.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot