Страница 384 из 400
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 20, 2024 16:00:22
shonty
Сорри
Нет такого числа пропусков. Я не так и не там замерял.
У меня же безо всяких задержек. И если опрос попадает вдруг в красную зону, у меня этот момент инкрементируется несколько раз подряд по кругу. От того и получилось так много. Но это не пропуски.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 20, 2024 16:14:22
Ivanoff-iv
Всё равно про 2/3 не догоняю... у энкодера ведь не 3 а 4 состояния...
Вот у меня опрос энкодера сделан по одному проводу, там действительно только 3 состояния, но и то пропуски там минимальны - устройство с ноября 2016 года работает не выключаясь - полет нормальный
( Это управление светом в комнате, провод один - потому что больше не было... вывод А энкодера замыкает провод на GND накоротко, вывод В - через резистор, на контроллере 1 нога идёт напрямую к этому проводу, 2я - через делитель - получаем если замыкается А - 0 на обеих входах, а если В - то только на втором.
прерывание возникает при спаде на 2й ноге, в прерывании проверяется состояние 1й, если 1 - вправо, если 0 - влево...
недостаток - если покачивать энкодер около точки сработки, то он будет тикать в одну сторону (зависиь от того, у какой точки сработки покачивать, но в быту это не напрягает)
рядом с этим проводом идёт фаза 220V, а GND - это сетевой 0, так даже тут нет пропуска 2/3 импульсов!
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 20, 2024 16:20:13
veso74
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=4651344#p4651344"]... недостаток - если покачивать энкодер около точки сработки, то он будет тикать в одну сторону (зависиь от того, у какой точки сработки покачивать ...[/uquote]
Да, это еще один недостаток, забыл об его упомянуть. Действительно вреден.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 20, 2024 16:23:24
shonty
Ivanoff-iv писал(а):у энкодера ведь не 3 а 4 состояния...
Да четыре. Если по картинке, то серая зона, красная, и 2 состояния в зелёной.
Но это не пропуски у меня, а не правильно считывал. Да и крутил чуть ли не с размаху о рукав
Добавлено after 2 minutes 34 seconds:
Но вот при очень мнедленном вращении срабатывает чётко. А на покачивание не реагирует
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 20, 2024 16:49:31
Ivanoff-iv
а вот я придумал, как я избавлюсь от качания в своей 3хпроводной схеме... - раз я не могу определить в какое из 2х состояний вернулся - то просто буду вспоминать состояние, в котором был до перехода...

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 20, 2024 18:15:24
BOB51
Снова за даавно забытое вспомнили...
Когда-то было делал:
Были варианты того алгоритма и на ассемблере для пикушки и на Си для адуринки...

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 20, 2024 23:06:36
Starichok51
shonty, чтобы не было пропусков, делаем счетчик для энкодера.
опрашиваем энкодер достаточно часто (у меня по таймеру через 1 или 2 мс).
если поворот вправо, делаем инкремент счетчика. если поворот влево, делаем декремент счетчика.
когда в цикле пришло время проверить энкодер, смотрим знак счетчика. если плюс, то поворачивали вправо, и наоборот.
тут даже скорость вращения не будет сказываться.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт ноя 21, 2024 00:07:56
shonty
Это не пропуски я фиксировал. А просто очень быстрый возврат из процедуры к опросу был.
А опрос у меня с интервалом 4/(8*10^-6)
У меня изначально стояло ожидание в процедуре. Не задержка, а именно ожидание окончания активности второго канала. Я её убрал, и в цикле как ложные срабатывания стали фиксироваться, хотя на самом деле их нет. Завтра верну ожидание.
Код отлично работает)) Хоть дрелью крути)
И главное лаконичный

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт ноя 21, 2024 05:14:15
Starichok51
shonty писал(а):А опрос у меня с интервалом 4/(8*10^-6)
круто! 500 тысяч раз в секунду?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт ноя 21, 2024 07:15:26
shonty
Starichok51 писал(а):круто! 500 тысяч раз в секунду?
4 цикла на 8-ми мегагерцах
LOOP:
- in R16, PIND
andi R16, (1<<CANAL_A)|(1<<CANAL_B)
cpi R16, (1<<CANAL_A)|(1<<CANAL_B)
breq LOOP
Спойлер
Код: Выделить всё
.equ CANAL_A = 2 ; канал А (PIND 1)
.equ CANAL_B = 1 ; канал А (PIND 2)
...
...
; -------------------- Главный цикл ------------------------
LOOP:
in R16, PIND
andi R16, (1<<CANAL_A)|(1<<CANAL_B)
cpi R16, (1<<CANAL_A)|(1<<CANAL_B)
breq LOOP
; чтение энкодера:
sbrs R16, CANAL_A
rjmp ROTATE_LEFT ; переход если сигнал в канале "A"
; sbrs R16, CANAL_B
rjmp ROTATE_RIGHT ; переход если сигнал в канале "B"
rjmp LOOP ; Вернуться в начало цикла
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт ноя 21, 2024 09:15:42
Starichok51
количество циклов не зависит от частоты.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт ноя 21, 2024 09:38:04
shonty
На 4-ре цикла при 8-ми мегагерцах сколько времени нужно?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт ноя 21, 2024 09:48:06
главный колбасист
На автомагнитолах,которые ремонтирую периодически,вечная беда,окисляются контакты и начинается мучение с громкостью. Особенно на китайских.Это от того,что плохой софт от дребезга,или есть предел,
когда с любым софтом выправить проблему уже невозможно ?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт ноя 21, 2024 12:00:54
Ivanoff-iv
Предел есть - когда лапки сносятся настолько, что ни разу не коснутся своего ответного контакта за отведенный промежуток - тут ни один антидребезг уже не поможет...
кстати, ставил параллельно контактам энкодера маленький (10-100нФ) конденсатор - проблему с дребезгом решает очень неплохо.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт ноя 21, 2024 14:42:59
ARV
Когда-то давно экспериментировал с использованием в качестве энкодера шагового двигателя. Результаты обнадеживали, сносу такому энкодеру не будет. Из сидюков можно крохотных шаговиков навыдирать. При известном старании можно вращать ручку прибора, как на всяких усилках с ДУ

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт ноя 21, 2024 14:55:17
Ivanoff-iv
Делал както оптоэнкодер из старого энкодера и оптопары от колесика мышки. В тестах всё работало, но при попытке вставить в корпус прибора я отломил ножку у оптотранзистора... другого у меня не было и проект пока так и лежит в долгом ящике
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт ноя 21, 2024 16:36:52
BOB51
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вт ноя 26, 2024 17:35:59
Paktok
Антидребезг я делал на вертикальных счетчиках. Все работает отлично, только много регистров пользуется.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вт ноя 26, 2024 20:12:12
Gudd-Head
Что за вертикальные счётчики?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 27, 2024 07:06:09
Ivanoff-iv
BOB51, такой применял:
Спойлер
