Обработка нажатия кнопки в AVR...
-
sanyo.95
- Нашел транзистор. Понюхал.
- Сообщения: 170
- Зарегистрирован: Вс мар 30, 2014 21:41:24
- Откуда: Украина
Re: Обработка нажатия кнопки в AVR...
А знаете возможно вы правы, буду читать. Спасибо за совет.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Обработка нажатия кнопки в AVR...
Вот и отличноsanyo.95 писал(а):буду читать

-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Обработка нажатия кнопки в AVR...
Ну не 500 мс а 100мс ... у вас цикл крутится 10 раз по 10мс, в конце него DR будет явно больше 5 и сработает per++, затем главный цикл приступит к следующей итерации и весь процесс повторится снова. и каждые 100мс будет очередной per++... через 400мс удержания кнопки на порту появится "1".
Главный цикл у микроконтроллеров - это бесконечный while (1), внутри него и выполняется по сути вся полезная программа.
Тело цикла, итерация
Я на С не пишу, поэтому привожу только алгоритмы которые легко переводятся на любой используемый язык программирования довольно таки однозначно.
Поэтому я и говорю, что в программировании язык ничего не значит - главное это алгоритмы, а их можно записывать в разных формах - графической, на русском, вербально, в виде блок-схем и т.д.
Особенно для начинающих очень важно начать именно с алгоритмов, перевод с алгоритма на язык программирования довольно простая и рутинная операция.
Попробуй написать свою программу на русском языке, в виде последовательности действий. На листе бумаги, обозначая стрелочками направление переходов. Или лучше в виде блок-схемы.
Писать сразу код и не путаться могут только закоренелые программисты, ну или люди с сильно развитым абстрактным мышлением. Впрочем, это практически одно и то же.
Главный цикл у микроконтроллеров - это бесконечный while (1), внутри него и выполняется по сути вся полезная программа.
Тело цикла, итерация
Я на С не пишу, поэтому привожу только алгоритмы которые легко переводятся на любой используемый язык программирования довольно таки однозначно.
Поэтому я и говорю, что в программировании язык ничего не значит - главное это алгоритмы, а их можно записывать в разных формах - графической, на русском, вербально, в виде блок-схем и т.д.
Особенно для начинающих очень важно начать именно с алгоритмов, перевод с алгоритма на язык программирования довольно простая и рутинная операция.
Попробуй написать свою программу на русском языке, в виде последовательности действий. На листе бумаги, обозначая стрелочками направление переходов. Или лучше в виде блок-схемы.
Писать сразу код и не путаться могут только закоренелые программисты, ну или люди с сильно развитым абстрактным мышлением. Впрочем, это практически одно и то же.
Последний раз редактировалось Alexeyslav Сб апр 26, 2014 21:06:31, всего редактировалось 2 раза.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Обработка нажатия кнопки в AVR...
господа КРАМ и иже с ним, ваши советы вполне имеют смысл и даже в некоторых случаях просто невероятно правильны, но вы вспомните себя, когда вы впервые написали "Hello, world!" - неужели вы не понимаете, что даваемые вами советы просто не в состоянии воспринять начинающий?! delay_ms видите ли моветон - таймер подавай... когда вы были начинающими, слово "таймер" у вас не вызывало непонимания?! неужели трудно снизойти до уровня того, кто нуждается в помощи и давать ему советы, которые он способен воспринять? все сначала учатся ездить на самокате, потом велосипеде, а только потом на машине - но не иначе! или на фоне начинающих легче возвыситься, разбрасывая направо и налево умные слова?! вы еще RTOS вспомните - там работа с кнопками вообще красиво вырисовывается...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Обработка нажатия кнопки в AVR...
ARV писал(а):господа КРАМ и иже с ним...
.... слово "таймер" у вас не вызывало непонимания?!
Подскажу... У них сейчас групповой вынос мозга от слова "STM32"...
"Я не даю готовых решений, я заставляю думать!"(С)
- КРАМ
- Друг Кота
- Сообщения: 25122
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Обработка нажатия кнопки в AVR...
ARV писал(а):как видите, все элементарно просто, и никакие таймеры не нужны. когда заматереете, как программист, тогда, возможно, начнете обрабатывать кнопки и с прерываниями и таймерами, но лично мне в огромном количестве поделок практически никогда это не требовалось...
ARV писал(а):вы каждый раз будете изобретать новый костыль? я - нет
Даже не знаю как это комментировать....
Ладно бы ТС что нибудь понял из Вашего кода... Но ведь НИЧЕГО НЕ ПОНЯЛ...
И прикол в том, что с delay() он НИКОГДА ничего не поймет....
И каждый раз будет искать костыли....
ЗЫ. New Корабельников?
Re: Обработка нажатия кнопки в AVR...
Каждый нуб просто обязан пройти по тернистому пути ветеранов, каким бы он идиотским не был . 
Re: Обработка нажатия кнопки в AVR...
КРАМ писал(а):И прикол в том, что с delay() он НИКОГДА ничего не поймет....
И каждый раз будет искать костыли....
"МРАК и фейкверк!"(С)
А с таймером уже не костыли, а ходули...
А если таймер один единственный... да и тот занят???
Да и какая разница... по большому счёту... если МК тупо исполняет "собака гоняется за своим хвостом" и больше ничего не делает???
"Я не даю готовых решений, я заставляю думать!"(С)
- КРАМ
- Друг Кота
- Сообщения: 25122
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Обработка нажатия кнопки в AVR...
HHIMERA писал(а):А если таймер один единственный... да и тот занят???
Прочти вопрос и узбагойся...

ЗЫ. Занятно, что собственные комплексы яростно экстраполируются на всех подряд...
Какая разница чем занят МК, если стоит задача обрабатывать кнопки, то решать её надо НАИБОЛЕЕ УНИВЕРСАЛЬНО.
А универсально - это с наименьшим расходом ресурсов.
И вообще, если преподавательский зуд не дает спать, то лучше направить его на собственных детей. Они оценят.
Или нет...
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Обработка нажатия кнопки в AVR...
решать её надо НАИБОЛЕЕ УНИВЕРСАЛЬНО
Это верный путь к "ничего не работает"
- КРАМ
- Друг Кота
- Сообщения: 25122
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Обработка нажатия кнопки в AVR...
Alexeyslav писал(а):Это верный путь к "ничего не работает"
Нет, Алексей, путь определяется сенсеем.
И если сенсей криворук и косноязычен, то и работать ничего не будет.
Объяснять про кнопки нужно с АЗОВ. Или просто дать шаблон, чтобы ТС отвязался. Но и результат ТС сможет получить только в рамках шаблона.
Использовать науку в СВОЕЙ задаче он не сможет.
Как это ни покажется некоторым "учителям" странным, но обработка кнопок относится к достаточно продвинутому уровню начинающих.
Сначала нужно освоить СИНХРОННЫЕ программы, а лишь потом перейти к АСИНХРОННЫМ...
И делать это нужно не ранее, чем будут освоены и счетчики и прерывания...
Re: Обработка нажатия кнопки в AVR...
КРАМ писал(а):А универсально - это с наименьшим расходом ресурсов.
С каких это пор... универсальность приводила к "наименьшим расходам ресурсов"???
Универсальность всегда была избыточна...
"Я не даю готовых решений, я заставляю думать!"(С)
- КРАМ
- Друг Кота
- Сообщения: 25122
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Обработка нажатия кнопки в AVR...
HHIMERA писал(а):Универсальность всегда была избыточна...
Есть доказательства или просто "так говорят"?
Тебя нагло обманули.
Молоток универсален и не избыточен...
Использование таймера в качестве системного загружает сам таймер лишь в обработчике на десяток машциклов, однако полностью освобождает суперлуп.
Для МК это означает перевод задачи в ФОНОВЫЙ режим. Это ли не универсальность?
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Обработка нажатия кнопки в AVR...
Молоток не универсален - он не умеет закручивать шурупы.
Фоновый режим это фоновый режим а не универсальность.
Фоновый режим это фоновый режим а не универсальность.
Re: Обработка нажатия кнопки в AVR...
КРАМ писал(а):Молоток универсален и не избыточен...
"Поставь на место микроскоп и положи гвозди!"(С)
загружает сам таймер лишь в обработчике на десяток машциклов, однако полностью освобождает суперлуп.
Зачитай, заодно, нубу ПРО volatile и атомарность... а вдруг поймёт с первого раза...
"Я не даю готовых решений, я заставляю думать!"(С)
- КРАМ
- Друг Кота
- Сообщения: 25122
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Обработка нажатия кнопки в AVR...
Алексей.
Молотком еще нельзя жарить блины и красить стены.
Зато им можно клепать, ковать, гнуть, забивать, разбивать и прочее, что связано с ударами.
МК тоже не умеет закручивать шурупы, если чо...
Перевод задачи в фоновый режим позволяет не делать все что угодно, а универсален в СМЫСЛЕ ИСПОЛЬЗОВАНИЯ В ПРОИЗВОЛЬНОЙ ПРОГРАММЕ.
Фоновая задача не конфликтует с пользовательской или вероятность такого конфликта крайне мала и легко устранима.
Кстати, использование Си как раз и располагает к такого рода решениям...
Демонстрация работы и работа - это СОВЕРШЕННО РАЗНЫЕ понятия.
Так вот, выше была предложена ДЕМОНСТРАЦИЯ.
Молотком еще нельзя жарить блины и красить стены.
Зато им можно клепать, ковать, гнуть, забивать, разбивать и прочее, что связано с ударами.
МК тоже не умеет закручивать шурупы, если чо...
Перевод задачи в фоновый режим позволяет не делать все что угодно, а универсален в СМЫСЛЕ ИСПОЛЬЗОВАНИЯ В ПРОИЗВОЛЬНОЙ ПРОГРАММЕ.
Фоновая задача не конфликтует с пользовательской или вероятность такого конфликта крайне мала и легко устранима.
Кстати, использование Си как раз и располагает к такого рода решениям...
Демонстрация работы и работа - это СОВЕРШЕННО РАЗНЫЕ понятия.
Так вот, выше была предложена ДЕМОНСТРАЦИЯ.
- КРАМ
- Друг Кота
- Сообщения: 25122
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Обработка нажатия кнопки в AVR...
HHIMERA писал(а):Зачитай, заодно, нубу ПРО volatile и атомарность... а вдруг поймёт с первого раза...
Могу поспорить на что нибудь существенное,что ты и сам нуб...
По крайней мере так себя ведешь...
Только нуб может кичиться своими убогими познаниями...
Re: Обработка нажатия кнопки в AVR...
КРАМ писал(а):Могу поспорить...
На конфету??? Пожалуйся воспитательнице...
А про volatile и атомарность почитай... вдруг пригодится...
"Я не даю готовых решений, я заставляю думать!"(С)
- КРАМ
- Друг Кота
- Сообщения: 25122
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Обработка нажатия кнопки в AVR...
к сожалению, я прав...
Re: Обработка нажатия кнопки в AVR...
Пирожок возьми на полочке... Корабельников!!!
Маразм или провалы памяти??? delay() к чему относится???
А если МК имеет хардварную обработку кнопок??? Тоже лепить по привычке "универсально"??? А как же великие познания... или это всё игра на публику???
И в догонку...
А что... printf так тяжек для нежного и ранимого мозга???
А если он хорошо ложится под задачу... почему бы и нет??? Или костность мышления не позволяет???
Сначала нужно освоить СИНХРОННЫЕ программы, а лишь потом перейти к АСИНХРОННЫМ...
И делать это нужно не ранее, чем будут освоены и счетчики и прерывания...
Маразм или провалы памяти??? delay() к чему относится???

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