Ассемблер (ASM) для AVR в вопросах и ответах
Re: Ассемблер (ASM) для AVR в вопросах и ответах
очень даже вероятно. ширина опроса тут не имеет значения.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Да, возможно. Если из процедуры вернуться в опрос с уже нажатыми кнопками..Martian писал(а):очень даже вероятно. ширина опроса тут не имеет значения.
Но у меня пока не стояло задачи обрабатывать мультинажатия, и после опроса порта:
Код: Выделить всё
LOOP:
in R16, PIND
andi R16, mask_buttons
cpi R16, mask_buttons
breq LOOP- Starichok51
- Модератор
- Сообщения: 19046
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
я вообще антидребезгом не заморачиваюсь.
у меня, например, в в некоторых проектах кнопки опрашиваются и обрабатываются 3 раза в секунду.
я однократно проверяю пин порта, и определяю, нажата кнопка или не нажата.
у меня, например, в в некоторых проектах кнопки опрашиваются и обрабатываются 3 раза в секунду.
я однократно проверяю пин порта, и определяю, нажата кнопка или не нажата.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Да, вероятность попасть на дребезг мала. Но особо нервных может бесить не мгновенная реакция на нажатите. Коль без прерывния... 
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: Ассемблер (ASM) для AVR в вопросах и ответах
если проверять 3 раза в секунду, то такой нтерфейс я бы не назвал дружественным (меня такое бесит) и не то, что медленно, а то, что нестабильно, то сразу сработает (если угадал момент) то через 0,3 секунды...
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
- Starichok51
- Модератор
- Сообщения: 19046
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
я учился ассемблеру на исходниках профессиональных программистов.
там решение о нажатии кнопки и заодно борьба с дребезгом было сделано довольно сложным образом.
программный цикл прибора составлял 0,32 секунды. за это время каждая кнопка опрашивалась 32 раза. и для каждой кнопки был свой счетчик.
если при нажатой кнопке (за 0,32 сек.) счетчик насчитал 20 "нажатий", то кнопка считалась нажатой. если меньше - то ненажатой.
в своем самом первом проекте на АТмега8 я применил этот алгоритм. но потом решил, что это излишество и упростил до вышеописанного.
вообще, по моему мнению, борьба с дребезгом - это уже какая-то религия или даже паранойя.
реакция человека довольно медленная, что один раз в жизни подождать лишние 1/3 секунды - даже не заметишь этот пролет.
там решение о нажатии кнопки и заодно борьба с дребезгом было сделано довольно сложным образом.
программный цикл прибора составлял 0,32 секунды. за это время каждая кнопка опрашивалась 32 раза. и для каждой кнопки был свой счетчик.
если при нажатой кнопке (за 0,32 сек.) счетчик насчитал 20 "нажатий", то кнопка считалась нажатой. если меньше - то ненажатой.
в своем самом первом проекте на АТмега8 я применил этот алгоритм. но потом решил, что это излишество и упростил до вышеописанного.
вероятность совпадения момента нажатия (или отпускания) с моментом опроса настолько мизерна, что я за несколько лет пользования не заметил проблем.Ivanoff-iv писал(а): то сразу сработает (если угадал момент) то через 0,3 секунды...
вообще, по моему мнению, борьба с дребезгом - это уже какая-то религия или даже паранойя.
реакция человека довольно медленная, что один раз в жизни подождать лишние 1/3 секунды - даже не заметишь этот пролет.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="Starichok51",url="/forum/viewtopic.php?p=4654104#p4654104"]реакция человека довольно медленная, что один раз в жизни подождать лишние 1/3 секунды - даже не заметишь этот пролет.[/uquote]
3 раза за секунду кнопку спокойно можно нажать и если опрос портов будет происходить между нажатиями, то не факт, что хоть одно нажатие задетектится. Если не знать, что это фича для людей с замедленной реакцией, то кроме как багом такое поведение не назовешь )
3 раза за секунду кнопку спокойно можно нажать и если опрос портов будет происходить между нажатиями, то не факт, что хоть одно нажатие задетектится. Если не знать, что это фича для людей с замедленной реакцией, то кроме как багом такое поведение не назовешь )
- Just_Fluffy
- Вымогатель припоя
- Сообщения: 532
- Зарегистрирован: Ср июн 29, 2022 16:25:45
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Ну, как мне кажется, нужно разделять профессионализм программирования на ассемблере и построение алгоритмов.
Профессионализм в ассемблере - это глубокое знание системы команд и архитектуры микропроцессорной системы, применение разных упрощений/ухищрений/трюков для конкретных случаев, когда компилятор ЯВУ будет делать типовой код, который окажется избыточным в конкретном случае...
А построение алгоритмов - оно языконезависимо. Не зря в школе на информатике (в мое время, как сейчас - не знаю) сначала учили алгоритмам, а потом уже пускали за компьютеры с бейсиком (или с программируемыми калькуляторами, если школа была без компьютеров).
И вопрос обработки дребезга - это скорее алгоритмическая задача. Если алгоритм в голове есть - то он делается на любом языке программирования.
ЗЫ. Все вышесказанное - чисто мое ИМХО.
Профессионализм в ассемблере - это глубокое знание системы команд и архитектуры микропроцессорной системы, применение разных упрощений/ухищрений/трюков для конкретных случаев, когда компилятор ЯВУ будет делать типовой код, который окажется избыточным в конкретном случае...
А построение алгоритмов - оно языконезависимо. Не зря в школе на информатике (в мое время, как сейчас - не знаю) сначала учили алгоритмам, а потом уже пускали за компьютеры с бейсиком (или с программируемыми калькуляторами, если школа была без компьютеров).
И вопрос обработки дребезга - это скорее алгоритмическая задача. Если алгоритм в голове есть - то он делается на любом языке программирования.
ЗЫ. Все вышесказанное - чисто мое ИМХО.
Белая и Пушистая
- КРАМ
- Друг Кота
- Сообщения: 25168
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="Just_Fluffy",url="/forum/viewtopic.php?p=4654139#p4654139"]чисто мое ИМХО.[/uquote]
И оно совершенно верное.
Алгоритмы - это задача для специалистов в целевой области. В данном случае - для радиоинженеров. Ибо это классическая задача обнаружения сигналов на фоне помех.
Программный код тут вообще не причем.
И оно совершенно верное.
Алгоритмы - это задача для специалистов в целевой области. В данном случае - для радиоинженеров. Ибо это классическая задача обнаружения сигналов на фоне помех.
Программный код тут вообще не причем.
- Starichok51
- Модератор
- Сообщения: 19046
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
ну да, если сумею нажать так коротко между обработками кнопок, то нажатие не зафиксируется. только вопрос - а зачем мне надо такое делать? я кнопку удерживаю, пока на экране не увижу реакцию на нажатие.Adrift писал(а):если опрос портов будет происходить между нажатиями, то не факт, что хоть одно нажатие задетектится.
пробовал я делать опросы кнопок часто и фиксировать нажатие внутри интервала в 1/3 секунды. тогда после отпускания у меня были частые сбои, когда получалась двойная обработка кнопки. после переделки на опрос кнопки непосредственно перед обработкой кнопки сбоев не стало вообще.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Just_Fluffy
- Вымогатель припоя
- Сообщения: 532
- Зарегистрирован: Ср июн 29, 2022 16:25:45
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Starichok51, просто опрос кнопок нужно выносить в отдельный независимый цикл, можно в таймерное прерывание. А в основную программу отдавать флаг нажатой кнопки.
Белая и Пушистая
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Да суть не в этом))
Особой разницы в частоте опроса нет же, у Старичка 3 раза в секунду, у меня 500 на 8-ми мгц))
На счёт алгоритмов, я тоже только за
Суть вопроса, а имеет ли смысл так зацикливаться на дребезге, что бы посвящать ему алгоритмы?
Или тотальное увлечение дребезгом это всё же оккультизм?
Особой разницы в частоте опроса нет же, у Старичка 3 раза в секунду, у меня 500 на 8-ми мгц))
На счёт алгоритмов, я тоже только за
Суть вопроса, а имеет ли смысл так зацикливаться на дребезге, что бы посвящать ему алгоритмы?
Или тотальное увлечение дребезгом это всё же оккультизм?
- Starichok51
- Модератор
- Сообщения: 19046
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
shonty, я уже тебе говорил, что тактовая частота тут не при чем. 500 раз в секунду можно сделать на любой частоте.
shonty, я же сказал, что тотальное увлечение дребезгом - это такая религия, божество, которому нужно поклоняться и угождать ему.
Just_Fluffy, не важно, как и когда делать опрос кнопок. алгоритмов можно придумать множество. главное - положительный результат придуманного алгоритма.
shonty, я же сказал, что тотальное увлечение дребезгом - это такая религия, божество, которому нужно поклоняться и угождать ему.
Just_Fluffy, не важно, как и когда делать опрос кнопок. алгоритмов можно придумать множество. главное - положительный результат придуманного алгоритма.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: Ассемблер (ASM) для AVR в вопросах и ответах
чего то мы всё дальше от темы... то энкодеры, то дребезг... хоть бы NOP где проскочил...
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
можно и про NOP, а что с ним не так?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Сколько шума... А вопрос то не ассемблера, а АЛГОРИТМОВ.

- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Многабуков, а я так и не понял, что за вертикальные счётчики.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Starichok51
- Модератор
- Сообщения: 19046
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
вертикальные потому, что каждый бит сдвигается вертикально в регистрах. то есть, остается в той же позиции.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="Starichok51",url="/forum/viewtopic.php?p=4654155#p4654155"]ну да, если сумею нажать так коротко между обработками кнопок, то нажатие не зафиксируется. только вопрос - а зачем мне надо такое делать? я кнопку удерживаю, пока на экране не увижу реакцию на нажатие.[/uquote]
Я когда время на часах выставляю, то обычно быстро кнопку нажимаю, потому что автоповтор там медленный, и думаю даже чаще 3 раз в сек получается ) Программа должна работать правильно, не важно хорошая у человека реакция или нет, тем более не понятно в чем выигрыш... Насколько проще получается программа если опрашивать кнопки 3 раза в секунду вместо 10-ти? Ни на сколько, смысл тогда так делать?
Я когда время на часах выставляю, то обычно быстро кнопку нажимаю, потому что автоповтор там медленный, и думаю даже чаще 3 раз в сек получается ) Программа должна работать правильно, не важно хорошая у человека реакция или нет, тем более не понятно в чем выигрыш... Насколько проще получается программа если опрашивать кнопки 3 раза в секунду вместо 10-ти? Ни на сколько, смысл тогда так делать?
- Starichok51
- Модератор
- Сообщения: 19046
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
сколько раз опрашивать зависит от необходимости требуемой частоты опроса.
например, кнопку старт/стоп я опрашиваю 100 раз в секунду, чтобы отличить короткое нажатие от длинного. а кнопки "+" и "-" мне хватает опрашивать 3 раза в секунду.
зачем мне опрашивать "+" и "-" чаще, если промежуточные опросы не несут никакой информации?
например, кнопку старт/стоп я опрашиваю 100 раз в секунду, чтобы отличить короткое нажатие от длинного. а кнопки "+" и "-" мне хватает опрашивать 3 раза в секунду.
зачем мне опрашивать "+" и "-" чаще, если промежуточные опросы не несут никакой информации?
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
