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

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

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

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

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

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


 
Опции темы
Непрочитано 25.08.2017, 14:14  
supercelt
Прописка
 
Регистрация: 29.03.2007
Сообщений: 185
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
supercelt на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

Сообщение от mike-y-k Посмотреть сообщение
supercelt, может посмотрите это решение на досуге?
В МК останется только код для инициализации, обработки прерывания и считывания результата. И ног гораздо меньше отнимет - всего 4.
А там уже и защита от дребезга, и все остальные плюшки .
Просто время, уже потраченное на изобретение велосипеда, явно гораздо дороже стоит чем комплект разработчика с мешочком чипов по ссылке…
Спасибо за ссылку, но у меня схем уже спаяна. И что либо менять уже нельзя. Только шаманить с кодом
Реклама:
supercelt вне форума  
Непрочитано 25.08.2017, 14:32  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

Сообщение от supercelt Посмотреть сообщение
Только шаманить с кодом
И такой вариант есть.
Столбцы - исходно все нули. Строки - прерывания. По прерыванию короткий опрос состояния клавы. Дребезг? Танивапрос. Повторный опрос, скажем, через 50 мс.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 25.08.2017, 15:21  
supercelt
Прописка
 
Регистрация: 29.03.2007
Сообщений: 185
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
supercelt на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

понизил частоту камня до 24 мгц, как у прошлого чипа. Все-равно не пашет. Код такой же, частота уже такая же.... в чём же разница...
supercelt вне форума  
Непрочитано 25.08.2017, 15:54  
estet
Почётный гражданин KAZUS.RU
 
Аватар для estet
 
Регистрация: 17.05.2005
Адрес: Украина
Сообщений: 1,964
Сказал спасибо: 296
Сказали Спасибо 498 раз(а) в 362 сообщении(ях)
estet на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

supercelt, правильный вариант уже был назван
Сообщение от 6ap6oc Посмотреть сообщение
В вашем случае:
Считывайте значение по установленному в предыдущем такте таймера ряду, а затем меняйте его. Задержка будет не нужна
estet вне форума  
Непрочитано 25.08.2017, 16:09  
supercelt
Прописка
 
Регистрация: 29.03.2007
Сообщений: 185
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
supercelt на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

Сообщение от estet Посмотреть сообщение
supercelt, правильный вариант уже был назван
То есть я правильно понял что это будет выглядеть так:
for(прогон строк){
-устанавливаем 0 на 1 строке
-это первый прогон, поэтому не сканим колонки (выход из цикла)
for(скан колонок){
считываем биты с порта для первой строки, хотя по циклу прогона строк это уже вторая строка
}
}

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

Последний раз редактировалось supercelt; 25.08.2017 в 16:17.
supercelt вне форума  
Непрочитано 25.08.2017, 21:50  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

supercelt, рогатый в мелочах кроется Тут уже только проверять весь полученный код в машинных командах в двух Ваших вариантах. Тут и интеллект компилятора, и умолчания, и разница в опциях,…

Кстати для 4x4 проще 4 раза вызвать функцию с параметром индекс порта и возвратом 4 бит состояния кнопок.

Отказ от гарантированного решения из-за копеечной по сути экономии на переделке - путь к будущим проблемам с клавиатурой.
У Вас наверняка пункт с нормальным тестированием отсутствует…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…

Последний раз редактировалось mike-y-k; 25.08.2017 в 22:01.
mike-y-k вне форума  
Непрочитано 26.08.2017, 02:57  
H4LF
Вид на жительство
 
Аватар для H4LF
 
Регистрация: 10.06.2007
Сообщений: 429
Сказал спасибо: 34
Сказали Спасибо 51 раз(а) в 47 сообщении(ях)
H4LF на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

supercelt, как-то сложно всё это... прерывания можно использовать, только если из спящего режима надо выходить, а так лучше без них обойтись и проще заодно будет и надёжнее (кстати, с прерыванием от таймера работало с выключенной оптимизацией? почему-то никто не сказал, что очень не хватает volatile у флага start_scan, или не только я устал об этом говорить...)
А почему бы как тут описано не сделать? Лично мне это кажется более понятным и универсальным.
Вложения:
Тип файла: pdf 2007_08_170.pdf (114.8 Кб, 0 просмотров)
H4LF вне форума  
Непрочитано 26.08.2017, 23:29  
supercelt
Прописка
 
Регистрация: 29.03.2007
Сообщений: 185
Сказал спасибо: 11
Сказали Спасибо 1 раз в 1 сообщении
supercelt на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

H4LF, да работало! Спасибо, прочитаю документ
supercelt вне форума  
Непрочитано 27.08.2017, 03:04  
H4LF
Вид на жительство
 
Аватар для H4LF
 
Регистрация: 10.06.2007
Сообщений: 429
Сказал спасибо: 34
Сказали Спасибо 51 раз(а) в 47 сообщении(ях)
H4LF на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

supercelt, Извиняюсь, не так спросил. Я не сомневаюсь, что работало, я хотел узнать - оптимизация была выключена при этом? Потому что со включенной не должно бы работать. Ну и так, на будущее...
H4LF вне форума  
Непрочитано 27.08.2017, 11:42  
МВА
Гражданин KAZUS.RU
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
МВА на пути к лучшему
По умолчанию Re: Оцените алгоритм опроса матричной клавы

Сообщение от H4LF Посмотреть сообщение
как-то сложно всё это...
Я того же мнения. У меня есть вопрос. А может ли быть дребезг, если не трогать кнопки на клаве? Я думаю, что нет. Значит дребезг можно воспринимать как нажатую/отпущенную (в зависимости от того, что делает кнопка при замыкании контактов) кнопку. Если контакт замыкается, то сразу устанавливается нужный уровень, а если размыкается - проводим интегрирование до противоположного уровня.
Я так обычно и поступаю и никаких циклических прогонов не делаю. Интегрирование заменяет задержку, разве-что не тормозит программу.
Этот алгоритм работает хорошо в приборных энкодерах, в которых используется скользящий контакт. Там шум присутствует во всем диапазоне замкнутого контакта и интегрированием в верх и вниз от него так просто не избавится. А в случае этого алгоритма - просто время замкнутого контакта увеличивается на величину дребезга с двух сторон и величину интегрирования в момент размыкания.

Последний раз редактировалось МВА; 27.08.2017 в 12:08.
МВА вне форума  
 

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

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

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

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


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


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