Страница 384 из 400

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср ноя 20, 2024 16:00:22
shonty
Сорри :dont_know:
Нет такого числа пропусков. Я не так и не там замерял.

Изображение

У меня же безо всяких задержек. И если опрос попадает вдруг в красную зону, у меня этот момент инкрементируется несколько раз подряд по кругу. От того и получилось так много. Но это не пропуски.

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х состояний вернулся - то просто буду вспоминать состояние, в котором был до перехода... :idea:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср ноя 20, 2024 18:15:24
BOB51
Снова за даавно забытое вспомнили...
Когда-то было делал:
tn13_enc.rar
(172.09 КБ) 88 скачиваний
Были варианты того алгоритма и на ассемблере для пикушки и на Си для адуринки...
:sleep:

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) :)
У меня изначально стояло ожидание в процедуре. Не задержка, а именно ожидание окончания активности второго канала. Я её убрал, и в цикле как ложные срабатывания стали фиксироваться, хотя на самом деле их нет. Завтра верну ожидание.

Код отлично работает)) Хоть дрелью крути)
И главное лаконичный :)

:beer:

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, такой применял:
СпойлерИзображение