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

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

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

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

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

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


 
Опции темы
Непрочитано 31.12.2016, 17:58  
ALEKS1102X
Заблокирован
 
Регистрация: 19.02.2007
Адрес: Барановичи
Сообщений: 255
Сказал спасибо: 3
Сказали Спасибо 51 раз(а) в 39 сообщении(ях)
ALEKS1102X на пути к лучшему
По умолчанию Re: Внешнее прерывание INT

Сообщение от Alex9797 Посмотреть сообщение
Неправильно.
_ я снимаю с ножек RB4...RB2) 0b...110..
Дико извиняюсь БАРИН, быдло я, в школе не учился, вот клаву подсунули, клацаю на знакомые букафки!
На ножках RB7 = 0, RB6 = 1, RB5 = 0
RB4 = RB6 = 0
RB3 = RB6 = 1
RB2 = RB6 = 0

Вы неверное только по чужим макросам прошивки пишите, а физику придумали идиоты, как и тормоза - трусы!!! Это не хамство, а аллегория!
Реклама:
ALEKS1102X вне форума  
Непрочитано 31.12.2016, 18:29  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Внешнее прерывание INT

хм... насколько я помню, у этого МК на порту Бэ для прерываний (interrupt-on-change) выделены RB4 - RB7. И плюс на всем порту есть pull-up. Его хватает. Так вот, активацию строк делаем "нулем" на всех RB0 - RB3 одновременно, и следим, когда возникнут прерывания на RB4 - RB7 от перехода в "ноль" любой из этих линий. Когда прерывание возникло, сканируем строки "нулем" построчно, определяя в какой строке была зажата кнопка.
Диоды или резисторы в строках предохраняют от КЗ в момент сканирования строк при одновременном зажатии двух кнопок в разных строках.

NewWriter вне форума  
Сказали "Спасибо" NewWriter
Alex9797 (31.12.2016)
Непрочитано 31.12.2016, 18:30  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,381
Сказал спасибо: 1,962
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Внешнее прерывание INT

Сообщение от ALEKS1102X Посмотреть сообщение
Вы неверное только по чужим макросам прошивки пишите, а физику придумали идиоты, как и тормоза - трусы!!! Это не хамство, а аллегория!
Блин, ну у вас же вроде это все в протеусе нарисовано?
Я бы на вашем месте проэмулировал, посмотрел, и потом
вежливо извинился. А вообще тут на чистый бан хватает. Но НГ, потому пока предупреждение.
__________________
[ жизнь приятна и красива, если выпить литр пива ]
nml вне форума  
Непрочитано 31.12.2016, 18:53  
shindax
Прописка
 
Регистрация: 04.09.2009
Сообщений: 167
Сказал спасибо: 1
Сказали Спасибо 35 раз(а) в 25 сообщении(ях)
shindax на пути к лучшему
По умолчанию Re: Внешнее прерывание INT

Сообщение от NewWriter Посмотреть сообщение
...Диоды или резисторы в строках предохраняют от КЗ в момент сканирования строк при одновременном зажатии двух кнопок в разных строках...
Очень устойчивое бредовое утверждение из старых времен. Для дискретной логики, где для сканирования строк/столбцов используются выводы счетчиков/дешифраторов, которые могут быть или входом, или выходом, наличие таких диодов однозначно необходимо. С МК, диоды на х. не нужны, достаточно правильно написать программу, чтобы в каждый момент времени выходом был лишь один вывод тогда никакое КЗ в принципе возникнуть не сможет. Эти басни про диоды и КЗ не пркращаются уже давно. Но если писать код через ж-пу, то и диодов может оказаться мало. Но все терминальные варианты подсчитать нереально.
shindax вне форума  
Непрочитано 31.12.2016, 18:58  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,381
Сказал спасибо: 1,962
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Внешнее прерывание INT

Сообщение от NewWriter Посмотреть сообщение
Когда прерывание возникло, сканируем строки "нулем" построчно, определяя в какой строке была зажата кнопка.
Как по мне, так сама идея прерываний для кнопок неудачна. Ну ни к чему это для кнопок - которые чисто физически не могут быть нажимаемы чаще чем 10 раз в секунду. Я бы сделал неторопливое, раз этак 50 в секунду - прерывание таймера и делал все там.

А если в устройстве, например, присутствует какая-нить динамическая индикация - вот к ней и прикрутить, на те же пины.
__________________
[ жизнь приятна и красива, если выпить литр пива ]
nml вне форума  
Сказали "Спасибо" nml
Alex9797 (31.12.2016)
Непрочитано 31.12.2016, 20:42  
ALEKS1102X
Заблокирован
 
Регистрация: 19.02.2007
Адрес: Барановичи
Сообщений: 255
Сказал спасибо: 3
Сказали Спасибо 51 раз(а) в 39 сообщении(ях)
ALEKS1102X на пути к лучшему
По умолчанию Re: Внешнее прерывание INT

Да, Alex9797, Вы таки были правы, пошёл сейчас собакина выгуливать, а в голове всё крутится эта матрица.
Да, я обычно в своих разработка (в большей части) использую 4 кнопки - "esc, sel/ok, - и +". У меня входных ножек опроса две, а выходных (RB7...5) - три (это если использую динамическую индикацию, и выходные - это обычно управление кадодами светодиодного индикатора), и я обычно на трёх выходных шинах ставлю диоды (три штуки, для одной входной линии), а на второй входной не ставлю... Нужно было бы ещё 2 кнопки - ставил бы ещё 3 диода...
Для тех, кто спросит - почему не использую 4 выхода катодов (анодов) в качестве выхода, а одну ножку в качестве входа клавы - объясню: я приблизительно такую-же схему опроса клавы использую в устройствах с LCD индикаторм типа 16002 в четырёхбитном режиме передачи данных. Так вот там в схеме ножки DB6...DB4 я используб в качестве выходов для клавы, а ножку DB7 я использую в качестве ответа готовности индикатора, поэтому её не трогаю для клавы. В общем как-то так. В остальном написал так, ка оно есть, и работает мой алгоритм (может не мой, кто-то может такой алгоритм использует уже 800 лет) -безукоризненно. Для работы клавы никогда не использую отдельное прерывание, только по факту основных прерываний опрашиваю кнопки. И даже, если обработка клавы где-то задержится, то плюс-минус несколько десятков милисекунд на обработку нажатия кнопок, визуально никто не заметит...
Извините меня Alex9797, я лично Вас ни в коей мере не хотел обидеть, просто Вы сразу наехали - я и ответил, а могли бы просто объяснить где я накосячил. Водка вчера просто была сильно заборитстая, а вообще я же написал - "быдло я"!
ALEKS1102X вне форума  
Непрочитано 31.12.2016, 21:15  
vavan1983
Почётный гражданин KAZUS.RU
 
Аватар для vavan1983
 
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
vavan1983 на пути к лучшему
По умолчанию Re: Внешнее прерывание INT

После нажатия кнопки нужно чётко отчитать определённое количество времени плюс такое же чёткое количество времени потратить на анти дребезг и там всё в притирку.

Одновременное нажатие максимум три и то не факт но этот факт вероятности достал уже нужно просто брать и делать. Тема конечно развернулась не на шутку но всем огромное спасибо кто принимают участие и в принципе вся тема индексируется поисковыми системами для молодёжи чтиво хоть одекватное не всё в институты деньги таскать.
vavan1983 вне форума  
Непрочитано 31.12.2016, 21:23  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Внешнее прерывание INT

Сообщение от vavan1983 Посмотреть сообщение
Одновременное нажатие максимум три и то не факт но этот факт вероятности достал уже нужно просто брать и делать.
В этом отношении неплохи МК от Nuvoton. Там кнопочная хня на уровне железа. Ну да, понимаю, у некоторых сейчас истерика от слова АРМ разразится. Ну и таймерами, если их много, можно хардварно разруливать. Ах, да, опять не тот случай. Ну тогда тупо поллинг порта, ничего и не остаётся.
STM32F0 вне форума  
Непрочитано 31.12.2016, 21:33  
vavan1983
Почётный гражданин KAZUS.RU
 
Аватар для vavan1983
 
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
vavan1983 на пути к лучшему
По умолчанию Re: Внешнее прерывание INT

STM32F0, на эту тему вам уже говаривал что если такие ресурсы понадобятся то не куда не денусь освою. Ну показали раз два в теме ну навязывать то зачем. Представьте мне знающему pic быстро перейти на что либо другое.
vavan1983 вне форума  
Непрочитано 31.12.2016, 21:36  
ALEKS1102X
Заблокирован
 
Регистрация: 19.02.2007
Адрес: Барановичи
Сообщений: 255
Сказал спасибо: 3
Сказали Спасибо 51 раз(а) в 39 сообщении(ях)
ALEKS1102X на пути к лучшему
По умолчанию Re: Внешнее прерывание INT

Сообщение от vavan1983 Посмотреть сообщение
После нажатия кнопки нужно чётко отчитать определённое количество времени плюс такое же чёткое количество времени потратить на анти дребезг и там всё в притирку.
Так может по-подробнее объясните в чём там ограничения в работе клавы, или же у Вас сама программа написана по принципу: самое главное действо - это нажатие кнопок, а после уже исполнение???
Просто обычно клава - это глубоко и далеко второстепенное...
Можно в личку.
ALEKS1102X вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
tdc7200 Alex_golubev Микроконтроллеры, АЦП, память и т.д 5 10.12.2016 13:26
Некорректная работа TMR0 (PIC18F4550) <VenoM> Proteus 4 18.03.2016 22:41
Мега88 внешнее прерывание по низкому уровню E_C_C Proteus 0 06.09.2012 11:47
LPC13xx Внешнее прерывание Sinopteek Микроконтроллеры, АЦП, память и т.д 3 17.02.2012 10:23
Внешнее прерывание на tiny15 livsha Микроконтроллеры, АЦП, память и т.д 8 21.04.2010 01:11


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


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