Страница 11 из 15
Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 19:49:23
sanyo.95
А знаете возможно вы правы, буду читать. Спасибо за совет.
Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 19:54:36
Аlex
sanyo.95 писал(а):буду читать
Вот и отлично

Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 20:04:18
Alexeyslav
Ну не 500 мс а 100мс ... у вас цикл крутится 10 раз по 10мс, в конце него DR будет явно больше 5 и сработает per++, затем главный цикл приступит к следующей итерации и весь процесс повторится снова. и каждые 100мс будет очередной per++... через 400мс удержания кнопки на порту появится "1".
Главный цикл у микроконтроллеров - это бесконечный while (1), внутри него и выполняется по сути вся полезная программа.
Тело цикла,
итерация
Я на С не пишу, поэтому привожу только
алгоритмы которые легко переводятся на любой используемый язык программирования довольно таки однозначно.
Поэтому я и говорю, что в программировании язык ничего не значит - главное это алгоритмы, а их можно записывать в разных формах - графической, на русском, вербально, в виде блок-схем и т.д.
Особенно для начинающих очень важно начать именно с алгоритмов, перевод с алгоритма на язык программирования довольно простая и рутинная операция.
Попробуй написать свою программу на русском языке, в виде последовательности действий. На листе бумаги, обозначая стрелочками направление переходов. Или лучше в виде
блок-схемы.
Писать сразу код и не путаться могут только закоренелые программисты, ну или люди с сильно развитым абстрактным мышлением. Впрочем, это практически одно и то же.
Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 20:18:08
ARV
господа КРАМ и иже с ним, ваши советы вполне имеют смысл и даже в некоторых случаях просто невероятно правильны, но вы вспомните себя, когда вы впервые написали "Hello, world!" - неужели вы не понимаете, что даваемые вами советы просто не в состоянии воспринять начинающий?! delay_ms видите ли моветон - таймер подавай... когда вы были начинающими, слово "таймер" у вас не вызывало непонимания?! неужели трудно снизойти до уровня того, кто нуждается в помощи и давать ему советы, которые он способен воспринять? все сначала учатся ездить на самокате, потом велосипеде, а только потом на машине - но не иначе! или на фоне начинающих легче возвыситься, разбрасывая направо и налево умные слова?! вы еще RTOS вспомните - там работа с кнопками вообще красиво вырисовывается...
Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 20:33:00
HHIMERA
ARV писал(а):господа КРАМ и иже с ним...
.... слово "таймер" у вас не вызывало непонимания?!
Подскажу... У них сейчас групповой вынос мозга от слова "STM32"...

Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 20:42:49
КРАМ
ARV писал(а):
как видите, все элементарно просто, и никакие таймеры не нужны. когда заматереете, как программист, тогда, возможно, начнете обрабатывать кнопки и с прерываниями и таймерами, но лично мне в огромном количестве поделок практически никогда это не требовалось...
ARV писал(а):вы каждый раз будете изобретать новый костыль? я - нет

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

Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 20:57:27
dosikus
Каждый нуб просто обязан пройти по тернистому пути ветеранов, каким бы он идиотским не был .

Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 21:14:03
HHIMERA
КРАМ писал(а):И прикол в том, что с delay() он НИКОГДА ничего не поймет....
И каждый раз будет искать костыли....
"МРАК и фейкверк!"(С)
А с таймером уже не костыли, а ходули...
А если таймер один единственный... да и тот занят???
Да и какая разница... по большому счёту... если МК тупо исполняет "собака гоняется за своим хвостом" и больше ничего не делает???

Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 21:18:54
КРАМ
HHIMERA писал(а):
А если таймер один единственный... да и тот занят???
Прочти вопрос и узбагойся...

ЗЫ. Занятно, что собственные комплексы яростно экстраполируются на всех подряд...
Какая разница чем занят МК, если стоит задача обрабатывать кнопки, то решать её надо НАИБОЛЕЕ УНИВЕРСАЛЬНО.
А универсально - это с наименьшим расходом ресурсов.
И вообще, если преподавательский зуд не дает спать, то лучше направить его на собственных детей. Они оценят.
Или нет...

Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 21:27:57
Alexeyslav
решать её надо НАИБОЛЕЕ УНИВЕРСАЛЬНО
Это верный путь к "ничего не работает"
Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 21:36:14
КРАМ
Alexeyslav писал(а):Это верный путь к "ничего не работает"
Нет, Алексей, путь определяется сенсеем.
И если сенсей криворук и косноязычен, то и работать ничего не будет.
Объяснять про кнопки нужно с АЗОВ. Или просто дать шаблон, чтобы ТС отвязался. Но и результат ТС сможет получить только в рамках шаблона.
Использовать науку в СВОЕЙ задаче он не сможет.
Как это ни покажется некоторым "учителям" странным, но обработка кнопок относится к достаточно продвинутому уровню начинающих.
Сначала нужно освоить СИНХРОННЫЕ программы, а лишь потом перейти к АСИНХРОННЫМ...
И делать это нужно не ранее, чем будут освоены и счетчики и прерывания...
Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 21:40:57
HHIMERA
КРАМ писал(а):
А универсально - это с наименьшим расходом ресурсов.
С каких это пор... универсальность приводила к "наименьшим расходам ресурсов"???
Универсальность всегда была избыточна...
Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 21:46:55
КРАМ
HHIMERA писал(а):
Универсальность всегда была избыточна...
Есть доказательства или просто "так говорят"?
Тебя нагло обманули.
Молоток универсален и не избыточен...
Использование таймера в качестве системного загружает сам таймер лишь в обработчике на десяток машциклов, однако полностью освобождает суперлуп.
Для МК это означает перевод задачи в ФОНОВЫЙ режим. Это ли не универсальность?
Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 22:22:32
Alexeyslav
Молоток не универсален - он не умеет закручивать шурупы.
Фоновый режим это фоновый режим а не универсальность.
Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 22:37:09
HHIMERA
КРАМ писал(а):Молоток универсален и не избыточен...
"Поставь на место микроскоп и положи гвозди!"(С)
загружает сам таймер лишь в обработчике на десяток машциклов, однако полностью освобождает суперлуп.
Зачитай, заодно, нубу ПРО volatile и атомарность... а вдруг поймёт с первого раза...

Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 22:38:27
КРАМ
Алексей.
Молотком еще нельзя жарить блины и красить стены.
Зато им можно клепать, ковать, гнуть, забивать, разбивать и прочее, что связано с ударами.
МК тоже не умеет закручивать шурупы, если чо...
Перевод задачи в фоновый режим позволяет не делать все что угодно, а универсален в СМЫСЛЕ ИСПОЛЬЗОВАНИЯ В ПРОИЗВОЛЬНОЙ ПРОГРАММЕ.
Фоновая задача не конфликтует с пользовательской или вероятность такого конфликта крайне мала и легко устранима.
Кстати, использование Си как раз и располагает к такого рода решениям...
Демонстрация работы и работа - это СОВЕРШЕННО РАЗНЫЕ понятия.
Так вот, выше была предложена ДЕМОНСТРАЦИЯ.
Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 22:40:33
КРАМ
HHIMERA писал(а):
Зачитай, заодно, нубу ПРО volatile и атомарность... а вдруг поймёт с первого раза...

Могу поспорить на что нибудь существенное,что ты и сам нуб...
По крайней мере так себя ведешь...
Только нуб может кичиться своими убогими познаниями...
Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 23:12:57
HHIMERA
КРАМ писал(а):Могу поспорить...
На конфету??? Пожалуйся воспитательнице...
А про volatile и атомарность почитай... вдруг пригодится...
Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 23:25:10
КРАМ
к сожалению, я прав...

Re: Обработка нажатия кнопки в AVR...
Добавлено: Сб апр 26, 2014 23:40:27
HHIMERA
Пирожок возьми на полочке... Корабельников!!!
Сначала нужно освоить СИНХРОННЫЕ программы, а лишь потом перейти к АСИНХРОННЫМ...
И делать это нужно не ранее, чем будут освоены и счетчики и прерывания...
Маразм или провалы памяти??? delay() к чему относится???

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