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

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

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

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

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

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


 
Опции темы
Непрочитано 29.11.2015, 19:24  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,509
Сказал спасибо: 401
Сказали Спасибо 2,218 раз(а) в 1,316 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Возможно ли такое в MPASM?

После выполнения действия по нажатой кнопке, установить бит в регистре, отведенном под эти нужды. Бит - общий для всех кнопок, либо отдельно на каждую кнопку. Сбрасывать этот бит при отпускании кнопки. А действие по нажатой кнопке выполнять только в том случае, если этот бит не установлен (проверка бита btfss или btfsc перед выполнением действия).

По схеме - первым делом - нельзя так напрямую соединять кнопки. Иначе при одновременном нажатии двух кнопок получится кз между линиями Q7 - Q6 - Q5. Кнопки соединять между собой в одну точку только через резисторы в несколько килоом. Либо через диоды, включенные так, чтобы не было протекания тока между Q7 - Q6 - Q5 при одновременном нажатии кнопок.
Реклама:
NewWriter вне форума  
Непрочитано 29.11.2015, 21:59  
Nick19
Временная регистрация
 
Аватар для Nick19
 
Регистрация: 26.10.2008
Адрес: москва
Сообщений: 92
Сказал спасибо: 15
Сказали Спасибо 10 раз(а) в 5 сообщении(ях)
Nick19 на пути к лучшему
По умолчанию Re: Возможно ли такое в MPASM?

Сообщение от NewWriter Посмотреть сообщение
По схеме - первым делом - нельзя так напрямую соединять кнопки.
Схема понятное дело для Протеуса, у меня и транзисторы в катоды не получилось разиестить, хотя и определил как дискретные. А насчет отжатия нужно ли зацикловывать, пока не будет отжатия и потом, если кнопка не нажата RA3 = 1, то как отслеживать отжатие, кроме того как зацикливание после входа по нажатию. Но циклы то разные, не может быть одновременно 2-х нулей на шине считивания RA3.

Последний раз редактировалось Nick19; 29.11.2015 в 23:53.
Nick19 вне форума  
Непрочитано 16.12.2015, 03:35  
rusyvochka
Гражданин KAZUS.RU
 
Аватар для rusyvochka
 
Регистрация: 30.05.2008
Адрес: Запорожье, Украина
Сообщений: 505
Сказал спасибо: 190
Сказали Спасибо 95 раз(а) в 56 сообщении(ях)
rusyvochka на пути к лучшему
По умолчанию Re: Возможно ли такое в MPASM?

Поступаю так:
Резервирую регистр, скажем, "key"
Перед! Сменой индикации, опашиваю общий вход - как правильно замечено выше, в жеезе надо делать паузу, иначе емкостя дают ложную информацию, перед сменой разряда, все давно устаканилось и, если нажато, выставляю соотв бит. Обработка в основном теле. Там же и проверка одновременного нажатия и времени удержания. К ста: есть игрушка со смешаным управлением, энкодер + кнопки. После тирзаний, финалка получилась такой:
В прерывании по изменению уровняна одном из каналов, определяю направление, выставляю в том же key соотв флаг ( прибавит / убавит), сбрасываю флаг и запрещаю эти прерывания. Обработка и разрешение прерываний, опять же, в основном теле. Чего дало? В железе достоверность не зависит от скорости вращения да и индикатор не подмигивает, как если в обработке энкодера "тяжелая" математика.
Транзисторы в Proteus заменяю на "примитивный" инвертор - эммулятору легче.
Касаемо стартового вопроса - проще табличного retlw врядли есть.
Можно еще rrf или rlf спроверкой C в цикле на 8 соорудить, если несколько бит одновременно проверять (не совсем в тему) - на вкус и цвет...
__________________
Смотрящий под ноги - звёзды видит в лужах.
rusyvochka вне форума  
Непрочитано 18.12.2015, 19:14  
Nick19
Временная регистрация
 
Аватар для Nick19
 
Регистрация: 26.10.2008
Адрес: москва
Сообщений: 92
Сказал спасибо: 15
Сказали Спасибо 10 раз(а) в 5 сообщении(ях)
Nick19 на пути к лучшему
По умолчанию Re: Возможно ли такое в MPASM?

Закончил свой проект. Все работает. Правда от использования "PCLATH - PCL" пришлось отказаться, благо переходов всего 3. Были проблемы с переводом программы на дисплей с общим анодом, но в конце концов все разрешилось добавлением гашения при смене знакомест. Хотя программа с общим катодом работала без гашения. Проект прилагаю, может кому пригодится. Всех с наступающим!
Вложения:
Тип файла: zip ZU6.zip (104.9 Кб, 29 просмотров)
Nick19 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что такое идентификатор для пакета CAN? greafuger Микроконтроллеры, АЦП, память и т.д 5 01.04.2008 08:53
Что такое JDM? pfgx Микроконтроллеры, АЦП, память и т.д 29 22.11.2007 22:37
floppy к lpt это возможно??? quicklyWWW Делимся опытом 8 10.04.2005 21:38
[Решено] !!! Знающие люди, HELP !!! Что такое "триггер шмитта&qu AlL Электроника - это просто 2 03.11.2004 15:43


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


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