Отличная идея! Реализовал в своей программке, все работает правильно.
@LevanMatchavariani6 жыл бұрын
ещё лучше будет если поставить резисторы разных номиналов после кнопок и диодов соединить их к одному аналоговому входу, как делитель напряжения, чтобы не тратить много выводы контроллера и также по прерыванию опрашивать аналоговы вход и по напряжению определять какая кнопка нажата
@andreyfrolov3016 жыл бұрын
делал что-то похожее. нужна была резистивная клава с пробуждением мк по прерыванию и определением нажатой кнопки. все работает, но только в протеусе... в железе полная каша. сможете прислать схемку того, что вы описали ?
@LevanMatchavariani6 жыл бұрын
@@andreyfrolov301 попробую
@LevanMatchavariani6 жыл бұрын
а как вам послать то вернее куда
@andreyfrolov3016 жыл бұрын
@@LevanMatchavariani dr.somet@yandex.ru
@LevanMatchavariani6 жыл бұрын
@@andreyfrolov301 Уже отправил
@AlekseiChip6 жыл бұрын
а таким образом можно опросить одновременно несколько кнопок?
@andreyfrolov3016 жыл бұрын
я так понял вы имеете ввиду зафиксировать нажатие сразу нескольких кнопок?теоретически можно, практически нет т.к. человек не сумеет так быстро нажать две и более кнопок, чтобы обогнать прерывание нужна некая задержка между срабатыванием прерывания и опросом пинов. можно рц цепочкой отсрочить прерывание.можно программную задержку вставить может быть еще что-то можно придумать.
@AlekseiChip6 жыл бұрын
@@andreyfrolov301 В моём проекте планируется подсчитывать два разных импульса и от 8 до 10 кнопок и может произойти, что одновременно может прийти 2 импульса да плюс и зажмётся одна или несколько кнопок. Наверное всё же лучше всего классический динамический опрос.
@andreyfrolov3016 жыл бұрын
@@AlekseiChip да, этот метод для случая когда кнопки нужно вешать именно на прерывание.
@excelentdevicesl50613 жыл бұрын
cli не совсем запрещает прерывания - они копятся - надо снимать флаг - чтобы прерывание не выполнилось после
@artemdavinci Жыл бұрын
Думаю, что лучше не флаг снимать, а запрещать именно само данное прерывания (точнее и то (флаг) и другое (прерывание) и глобальное). Так как кнопка может быть нажата и после того как флаг сброшен, хоть и чисто технически, человек не в состоянии обогнать по скорости МК)). Даже если и не писать запрет на прерывания, то в данном коде мы очень навряд сможем так быстро нажать следующую кнопку. Но в более "сложных" программах, конечно нужно перестраховываться.