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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
shonty
Мучитель микросхем
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

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

Сообщение shonty »

Сорри :dont_know:
Нет такого числа пропусков. Я не так и не там замерял.

Изображение

У меня же безо всяких задержек. И если опрос попадает вдруг в красную зону, у меня этот момент инкрементируется несколько раз подряд по кругу. От того и получилось так много. Но это не пропуски.
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

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

Сообщение Ivanoff-iv »

Всё равно про 2/3 не догоняю... у энкодера ведь не 3 а 4 состояния...

Вот у меня опрос энкодера сделан по одному проводу, там действительно только 3 состояния, но и то пропуски там минимальны - устройство с ноября 2016 года работает не выключаясь - полет нормальный
( Это управление светом в комнате, провод один - потому что больше не было... вывод А энкодера замыкает провод на GND накоротко, вывод В - через резистор, на контроллере 1 нога идёт напрямую к этому проводу, 2я - через делитель - получаем если замыкается А - 0 на обеих входах, а если В - то только на втором.
прерывание возникает при спаде на 2й ноге, в прерывании проверяется состояние 1й, если 1 - вправо, если 0 - влево...
недостаток - если покачивать энкодер около точки сработки, то он будет тикать в одну сторону (зависиь от того, у какой точки сработки покачивать, но в быту это не напрягает)
рядом с этим проводом идёт фаза 220V, а GND - это сетевой 0, так даже тут нет пропуска 2/3 импульсов!
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
veso74
Поставщик валерьянки для Кота
Сообщения: 1905
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=4651344#p4651344"]... недостаток - если покачивать энкодер около точки сработки, то он будет тикать в одну сторону (зависиь от того, у какой точки сработки покачивать ...[/uquote]
Да, это еще один недостаток, забыл об его упомянуть. Действительно вреден.
Последний раз редактировалось veso74 Ср ноя 20, 2024 16:21:05, всего редактировалось 1 раз.
Аватара пользователя
shonty
Мучитель микросхем
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

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

Сообщение shonty »

Ivanoff-iv писал(а):у энкодера ведь не 3 а 4 состояния...
Да четыре. Если по картинке, то серая зона, красная, и 2 состояния в зелёной.

Но это не пропуски у меня, а не правильно считывал. Да и крутил чуть ли не с размаху о рукав :)

Добавлено after 2 minutes 34 seconds:
Но вот при очень мнедленном вращении срабатывает чётко. А на покачивание не реагирует
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

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

Сообщение Ivanoff-iv »

а вот я придумал, как я избавлюсь от качания в своей 3хпроводной схеме... - раз я не могу определить в какое из 2х состояний вернулся - то просто буду вспоминать состояние, в котором был до перехода... :idea:
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15549
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Снова за даавно забытое вспомнили...
Когда-то было делал:
tn13_enc.rar
(172.09 КБ) 84 скачивания
Были варианты того алгоритма и на ассемблере для пикушки и на Си для адуринки...
:sleep:
Аватара пользователя
Starichok51
Модератор
Сообщения: 19044
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

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

Сообщение Starichok51 »

shonty, чтобы не было пропусков, делаем счетчик для энкодера.
опрашиваем энкодер достаточно часто (у меня по таймеру через 1 или 2 мс).
если поворот вправо, делаем инкремент счетчика. если поворот влево, делаем декремент счетчика.
когда в цикле пришло время проверить энкодер, смотрим знак счетчика. если плюс, то поворачивали вправо, и наоборот.
тут даже скорость вращения не будет сказываться.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
shonty
Мучитель микросхем
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

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

Сообщение shonty »

Это не пропуски я фиксировал. А просто очень быстрый возврат из процедуры к опросу был.
А опрос у меня с интервалом 4/(8*10^-6) :)
У меня изначально стояло ожидание в процедуре. Не задержка, а именно ожидание окончания активности второго канала. Я её убрал, и в цикле как ложные срабатывания стали фиксироваться, хотя на самом деле их нет. Завтра верну ожидание.

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

:beer:
Аватара пользователя
Starichok51
Модератор
Сообщения: 19044
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

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

Сообщение Starichok51 »

shonty писал(а):А опрос у меня с интервалом 4/(8*10^-6)
круто! 500 тысяч раз в секунду?
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
shonty
Мучитель микросхем
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

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

Сообщение 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					; Вернуться в начало цикла
Аватара пользователя
Starichok51
Модератор
Сообщения: 19044
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

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

Сообщение Starichok51 »

количество циклов не зависит от частоты.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
shonty
Мучитель микросхем
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

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

Сообщение shonty »

На 4-ре цикла при 8-ми мегагерцах сколько времени нужно?
Аватара пользователя
главный колбасист
Это не хвост, это антенна
Сообщения: 1323
Зарегистрирован: Чт авг 21, 2014 11:11:48
Откуда: краснодарский край
Контактная информация:

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

Сообщение главный колбасист »

На автомагнитолах,которые ремонтирую периодически,вечная беда,окисляются контакты и начинается мучение с громкостью. Особенно на китайских.Это от того,что плохой софт от дребезга,или есть предел,
когда с любым софтом выправить проблему уже невозможно ?
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

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

Сообщение Ivanoff-iv »

Предел есть - когда лапки сносятся настолько, что ни разу не коснутся своего ответного контакта за отведенный промежуток - тут ни один антидребезг уже не поможет...

кстати, ставил параллельно контактам энкодера маленький (10-100нФ) конденсатор - проблему с дребезгом решает очень неплохо.
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

Когда-то давно экспериментировал с использованием в качестве энкодера шагового двигателя. Результаты обнадеживали, сносу такому энкодеру не будет. Из сидюков можно крохотных шаговиков навыдирать. При известном старании можно вращать ручку прибора, как на всяких усилках с ДУ :))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

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

Сообщение Ivanoff-iv »

Делал както оптоэнкодер из старого энкодера и оптопары от колесика мышки. В тестах всё работало, но при попытке вставить в корпус прибора я отломил ножку у оптотранзистора... другого у меня не было и проект пока так и лежит в долгом ящике
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15549
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Paktok
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вт апр 23, 2024 11:36:23

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

Сообщение Paktok »

Антидребезг я делал на вертикальных счетчиках. Все работает отлично, только много регистров пользуется.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

Что за вертикальные счётчики?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

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

Сообщение Ivanoff-iv »

BOB51, такой применял:
СпойлерИзображение
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Ответить

Вернуться в «AVR»