Обработка нажатия кнопки в AVR...

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
sanyo.95
Нашел транзистор. Понюхал.
Сообщения: 170
Зарегистрирован: Вс мар 30, 2014 21:41:24
Откуда: Украина

Re: Обработка нажатия кнопки в AVR...

Сообщение sanyo.95 »

А знаете возможно вы правы, буду читать. Спасибо за совет.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Обработка нажатия кнопки в AVR...

Сообщение Аlex »

sanyo.95 писал(а):буду читать
Вот и отлично :write:
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Обработка нажатия кнопки в AVR...

Сообщение Alexeyslav »

Ну не 500 мс а 100мс ... у вас цикл крутится 10 раз по 10мс, в конце него DR будет явно больше 5 и сработает per++, затем главный цикл приступит к следующей итерации и весь процесс повторится снова. и каждые 100мс будет очередной per++... через 400мс удержания кнопки на порту появится "1".

Главный цикл у микроконтроллеров - это бесконечный while (1), внутри него и выполняется по сути вся полезная программа.

Тело цикла, итерация

Я на С не пишу, поэтому привожу только алгоритмы которые легко переводятся на любой используемый язык программирования довольно таки однозначно.
Поэтому я и говорю, что в программировании язык ничего не значит - главное это алгоритмы, а их можно записывать в разных формах - графической, на русском, вербально, в виде блок-схем и т.д.
Особенно для начинающих очень важно начать именно с алгоритмов, перевод с алгоритма на язык программирования довольно простая и рутинная операция.
Попробуй написать свою программу на русском языке, в виде последовательности действий. На листе бумаги, обозначая стрелочками направление переходов. Или лучше в виде блок-схемы.
Писать сразу код и не путаться могут только закоренелые программисты, ну или люди с сильно развитым абстрактным мышлением. Впрочем, это практически одно и то же.
Последний раз редактировалось Alexeyslav Сб апр 26, 2014 21:06:31, всего редактировалось 2 раза.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Обработка нажатия кнопки в AVR...

Сообщение ARV »

господа КРАМ и иже с ним, ваши советы вполне имеют смысл и даже в некоторых случаях просто невероятно правильны, но вы вспомните себя, когда вы впервые написали "Hello, world!" - неужели вы не понимаете, что даваемые вами советы просто не в состоянии воспринять начинающий?! delay_ms видите ли моветон - таймер подавай... когда вы были начинающими, слово "таймер" у вас не вызывало непонимания?! неужели трудно снизойти до уровня того, кто нуждается в помощи и давать ему советы, которые он способен воспринять? все сначала учатся ездить на самокате, потом велосипеде, а только потом на машине - но не иначе! или на фоне начинающих легче возвыситься, разбрасывая направо и налево умные слова?! вы еще RTOS вспомните - там работа с кнопками вообще красиво вырисовывается...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Обработка нажатия кнопки в AVR...

Сообщение HHIMERA »

ARV писал(а):господа КРАМ и иже с ним...
.... слово "таймер" у вас не вызывало непонимания?!

Подскажу... У них сейчас групповой вынос мозга от слова "STM32"... :))) :)))
"Я не даю готовых решений, я заставляю думать!"(С)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25122
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Обработка нажатия кнопки в AVR...

Сообщение КРАМ »

ARV писал(а):как видите, все элементарно просто, и никакие таймеры не нужны. когда заматереете, как программист, тогда, возможно, начнете обрабатывать кнопки и с прерываниями и таймерами, но лично мне в огромном количестве поделок практически никогда это не требовалось...

ARV писал(а):вы каждый раз будете изобретать новый костыль? я - нет :)

:facepalm:
Даже не знаю как это комментировать....
Ладно бы ТС что нибудь понял из Вашего кода... Но ведь НИЧЕГО НЕ ПОНЯЛ...
:cry:
И прикол в том, что с delay() он НИКОГДА ничего не поймет....
И каждый раз будет искать костыли....
ЗЫ. New Корабельников? :wink:
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Обработка нажатия кнопки в AVR...

Сообщение dosikus »

Каждый нуб просто обязан пройти по тернистому пути ветеранов, каким бы он идиотским не был . :)))
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Обработка нажатия кнопки в AVR...

Сообщение HHIMERA »

КРАМ писал(а):И прикол в том, что с delay() он НИКОГДА ничего не поймет....
И каждый раз будет искать костыли....

"МРАК и фейкверк!"(С)
А с таймером уже не костыли, а ходули... :)))
А если таймер один единственный... да и тот занят???
Да и какая разница... по большому счёту... если МК тупо исполняет "собака гоняется за своим хвостом" и больше ничего не делает??? :)))
"Я не даю готовых решений, я заставляю думать!"(С)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25122
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Обработка нажатия кнопки в AVR...

Сообщение КРАМ »

HHIMERA писал(а):А если таймер один единственный... да и тот занят???

Прочти вопрос и узбагойся...
:music:
ЗЫ. Занятно, что собственные комплексы яростно экстраполируются на всех подряд...
Какая разница чем занят МК, если стоит задача обрабатывать кнопки, то решать её надо НАИБОЛЕЕ УНИВЕРСАЛЬНО.
А универсально - это с наименьшим расходом ресурсов.
И вообще, если преподавательский зуд не дает спать, то лучше направить его на собственных детей. Они оценят.
Или нет...
:(
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Обработка нажатия кнопки в AVR...

Сообщение Alexeyslav »

решать её надо НАИБОЛЕЕ УНИВЕРСАЛЬНО

Это верный путь к "ничего не работает"
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25122
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Обработка нажатия кнопки в AVR...

Сообщение КРАМ »

Alexeyslav писал(а):Это верный путь к "ничего не работает"

Нет, Алексей, путь определяется сенсеем.
И если сенсей криворук и косноязычен, то и работать ничего не будет.
Объяснять про кнопки нужно с АЗОВ. Или просто дать шаблон, чтобы ТС отвязался. Но и результат ТС сможет получить только в рамках шаблона.
Использовать науку в СВОЕЙ задаче он не сможет.
Как это ни покажется некоторым "учителям" странным, но обработка кнопок относится к достаточно продвинутому уровню начинающих.
Сначала нужно освоить СИНХРОННЫЕ программы, а лишь потом перейти к АСИНХРОННЫМ...
И делать это нужно не ранее, чем будут освоены и счетчики и прерывания...
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Обработка нажатия кнопки в AVR...

Сообщение HHIMERA »

КРАМ писал(а):А универсально - это с наименьшим расходом ресурсов.

:facepalm: :kill:
С каких это пор... универсальность приводила к "наименьшим расходам ресурсов"???
Универсальность всегда была избыточна...
"Я не даю готовых решений, я заставляю думать!"(С)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25122
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Обработка нажатия кнопки в AVR...

Сообщение КРАМ »

HHIMERA писал(а):Универсальность всегда была избыточна...

Есть доказательства или просто "так говорят"?
:)
Тебя нагло обманули.
Молоток универсален и не избыточен...
:wink:
Использование таймера в качестве системного загружает сам таймер лишь в обработчике на десяток машциклов, однако полностью освобождает суперлуп.
Для МК это означает перевод задачи в ФОНОВЫЙ режим. Это ли не универсальность?
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Обработка нажатия кнопки в AVR...

Сообщение Alexeyslav »

Молоток не универсален - он не умеет закручивать шурупы.

Фоновый режим это фоновый режим а не универсальность.
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Обработка нажатия кнопки в AVR...

Сообщение HHIMERA »

КРАМ писал(а):Молоток универсален и не избыточен...

"Поставь на место микроскоп и положи гвозди!"(С)

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

Зачитай, заодно, нубу ПРО volatile и атомарность... а вдруг поймёт с первого раза... 8)
"Я не даю готовых решений, я заставляю думать!"(С)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25122
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Обработка нажатия кнопки в AVR...

Сообщение КРАМ »

Алексей.
Молотком еще нельзя жарить блины и красить стены.
Зато им можно клепать, ковать, гнуть, забивать, разбивать и прочее, что связано с ударами.
МК тоже не умеет закручивать шурупы, если чо...
Перевод задачи в фоновый режим позволяет не делать все что угодно, а универсален в СМЫСЛЕ ИСПОЛЬЗОВАНИЯ В ПРОИЗВОЛЬНОЙ ПРОГРАММЕ.
Фоновая задача не конфликтует с пользовательской или вероятность такого конфликта крайне мала и легко устранима.
Кстати, использование Си как раз и располагает к такого рода решениям...
Демонстрация работы и работа - это СОВЕРШЕННО РАЗНЫЕ понятия.
Так вот, выше была предложена ДЕМОНСТРАЦИЯ.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25122
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Обработка нажатия кнопки в AVR...

Сообщение КРАМ »

HHIMERA писал(а):Зачитай, заодно, нубу ПРО volatile и атомарность... а вдруг поймёт с первого раза... 8)

Могу поспорить на что нибудь существенное,что ты и сам нуб...
По крайней мере так себя ведешь...
Только нуб может кичиться своими убогими познаниями...
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Обработка нажатия кнопки в AVR...

Сообщение HHIMERA »

КРАМ писал(а):Могу поспорить...

На конфету??? Пожалуйся воспитательнице... :))) :)))
А про volatile и атомарность почитай... вдруг пригодится...
"Я не даю готовых решений, я заставляю думать!"(С)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25122
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Обработка нажатия кнопки в AVR...

Сообщение КРАМ »

:facepalm:
к сожалению, я прав...
:cry:
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Обработка нажатия кнопки в AVR...

Сообщение HHIMERA »

Пирожок возьми на полочке... Корабельников!!! :))) :))) :)))
Сначала нужно освоить СИНХРОННЫЕ программы, а лишь потом перейти к АСИНХРОННЫМ...
И делать это нужно не ранее, чем будут освоены и счетчики и прерывания...

Маразм или провалы памяти??? delay() к чему относится??? :facepalm:
А если МК имеет хардварную обработку кнопок??? Тоже лепить по привычке "универсально"??? А как же великие познания... или это всё игра на публику???
И в догонку...
КРАМ писал(а):Из серии printf ...

А что... printf так тяжек для нежного и ранимого мозга???
А если он хорошо ложится под задачу... почему бы и нет??? Или костность мышления не позволяет???
"Я не даю готовых решений, я заставляю думать!"(С)
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»