Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
06.01.2012, 17:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
А меня вполне устраивает следующий алгоритм (подпрограмма):
- проверка PINa (кнопки), по результату - установка/сброс флага переноса;
- сдвиг буферного регистра через перенос;
- сравнить буферный регистр с 0 или 255 (зависит от того, какое состояние надо отловить);
- если равно, то кнопка нажата (отжата).
Смысл в том, что здесь 8-ми кратное подтверждение состояния пина (если дребезг, то в буферном регистре всех 0 или 1 подряд не будет с очень большой вероятностью и, следовательно, состояние кнопки не определится пока все переходные процессы не устаканятся). Не обязательно проверять 8 раз подряд. Можно обращаться к этому алгоритму (подпрограмме) с каким-то интервалом.
К недостаткам можно отнести то, что на каждую кнопку нужен свой буферный регистр.
|
|
|
|
06.01.2012, 17:41
|
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от Pajatel
|
...извиняюсь за неграматность, а это как? ..просто впустую крутим проц и больше ничего он в это время не делает?!
|
Ну да , просили пример без прерываний - так я привел его , и как раз именно так здесь и считаются выдержки .Прерывания - отданы на другие функции , и можно конечно вклинить было сюда , не стал , и к тому же прерывания для других функций и не мелкие - до сотен мкс , но и выдержки передачи по кабелю еще больше - приличные - кабель 2,5 - метра а передача на килогерцах небыстрая организована - так что даже если прерывания - эти микросекундные, от других функций - и стопорят на время их обработки сам счет в TIME - но ни на надежность связи это ,ни на реакцию кнопок - не влияет ,сбоев нет , и визуально на глаз тоже все быстро очень происходит ,никаких тормозов незаметно , на кнопки реакция системы мгновенная сразу , так что и прерываний нет на кнопках , и нормальная их обработка есть ,ну еще и вывод инфы в индикаторы попутно .
Что-то типа SPI , можно сказать , сделал , только другого формата , и по своему протоколу обмена .
__________________
Короче асма кода нет !
Последний раз редактировалось pinco; 06.01.2012 в 17:58.
|
|
|
|
06.01.2012, 17:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от alvadep
|
К недостаткам можно отнести то, что на каждую кнопку нужен свой буферный регистр.
|
Зачем?
Код нажатой кнопки(кнопок).
Только тогда надо реагировать на изменение состояния порта и сохранять предыдущее.
|
|
|
|
06.01.2012, 17:58
|
|
Прописка
Регистрация: 04.12.2010
Сообщений: 243
Сказал спасибо: 9
Сказали Спасибо 51 раз(а) в 32 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от pinco
|
Ну да , просили пример без прерываний - так я привел его
|
..ну на счёт прерываний я ничего не говорил, хотелось бы поуневерсальней, а с прерыванием или без... это как получится..
У меня в подпрограмме для LCD встроены такие задержки по 3мкс и то я на них косо посматриваю... вообще стараюсь избегать такого типа задержек, на то он и асм а не си
|
|
|
|
06.01.2012, 18:09
|
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от Pajatel
|
..ну на счёт прерываний я ничего не говорил, хотелось бы поуневерсальней, а с прерыванием или без...
|
Да нет суперуниверсальных решений типа раз и навсегда изобретенного велосипеда ,говорили ж об этом ,есть масса общих схемных и алгоритмических решений , но в каждом конкретном случае подойдет какое-то конкретное одно из них решение под то железо какое там Вы сделали , а то и вовсе свое собственное оригинальное легче сделать (или написать) .Ну и зачем эту суперуниверсальность-то искать ?
__________________
Короче асма кода нет !
Последний раз редактировалось pinco; 06.01.2012 в 18:16.
|
|
|
|
06.01.2012, 18:25
|
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от Pajatel
|
..
У меня в подпрограмме для LCD встроены такие задержки по 3мкс и то я на них косо посматриваю... вообще стараюсь избегать такого типа задержек, на то он и асм а не си
|
Задержки для LCD если они нужны по датачету на этот LCD - необходимы и их нужно обязательно строго выдерживать , а не смотреть на них косо, чтобы LCD мог нормально работать в своем режиме, это мое мнение , а избегать задержек применяя асм а не С это не туда , и на С тоже можно сделать почти без задержек , вопрос в том а надо ли ? И потом - чтобы не бояться задержек - соотносите сами величины задержек с быстротой процессов в Вашей системе - то есть может оказаться что такие задержки настолько малы что системе в общем они как укус комара , а Вы их все стремитесь поголовно уменьшить или исключить совсем в идеале - так может это совсем и не нужно , вот я к чему .
__________________
Короче асма кода нет !
Последний раз редактировалось pinco; 06.01.2012 в 18:35.
|
|
|
|
06.01.2012, 18:29
|
|
Прописка
Регистрация: 04.12.2010
Сообщений: 243
Сказал спасибо: 9
Сказали Спасибо 51 раз(а) в 32 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от pinco
|
Да нет суперуниверсальных решений типа раз и навсегда изобретенного велосипеда
|
..конечно нету, но так хочется Вот сейчас, в моём проекте, заканчиваются пины, думаю кнопки совместить с lcd и вот прикидываю, потянет мой алгоритм совместную работу или облажается... пока не пробовал поженить, теоретически прикидывал, вродь как должен, может правд придётся немного диодиков подкинуть...
|
|
|
|
06.01.2012, 18:40
|
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от Pajatel
|
..конечно нету, но так хочется Вот сейчас, в моём проекте, заканчиваются пины, думаю кнопки совместить с lcd и вот прикидываю, потянет мой алгоритм совместную работу или облажается... пока не пробовал поженить, теоретически прикидывал, вродь как должен, может правд придётся немного диодиков подкинуть...
|
Попробуйте , либо как вариант - переключать некоторые информационные выводы AVR-а внешним коммутатором при выводе в LCD и при вводе инфы с кнопок , пока как идея , предлагаю , хотя не видя что там у Вас конкретно заложено по схеме - трудно что либо сразу подходящее посоветовать .
А может проще взять просто контроллер с большим количеством ног , да и не заморачиваться с этим совмещением вообще ? Попробуйте и это .У Вас на каком сейчас контроллере , на котором нехватка ног ,там все планируется ?
__________________
Короче асма кода нет !
Последний раз редактировалось pinco; 06.01.2012 в 18:47.
|
|
|
|
06.01.2012, 20:56
|
|
Прописка
Регистрация: 04.12.2010
Сообщений: 243
Сказал спасибо: 9
Сказали Спасибо 51 раз(а) в 32 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Ну вот подготовил свой код. Работает как по мне отличненько.Там же прикрепил структурку для большей ясности. Просьба камнями не закидывать, учусь всёж Если чё не ясно, спрашивайте.
Сообщение от pinco
|
У Вас на каком сейчас контроллере
|
ATmega88
|
|
|
|
06.01.2012, 21:20
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
А вот я схемку собирал, где идет и опрос кнопок и управление дисплеем...
Правда исходников нет, просто готовое повторил.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:04.
|
|