Чт окт 14, 2021 10:54:18
Чт окт 14, 2021 11:27:35
Чт окт 14, 2021 14:03:52
он у вас что, крутится с бешеной скоростью? Про какой энкодер речь идет?Eddy_Em писал(а):что битовым сдвигом определить количество оборотов нельзя будет!
На атмеге делили на 8-16МГц, а F0 на 48-72МГц не поделить?Eddy_Em писал(а):деление, которое, напомню, у STM32F0 СОФТОВОЕ!
Чт окт 14, 2021 14:39:59
Чт окт 14, 2021 14:51:28
Чт окт 14, 2021 16:02:10
Чт окт 14, 2021 17:07:14
Думал, что мы про какую-то конкретную модель говорим, а вы охватили весь спектр.Eddy_Em писал(а):Да любой энкодер с квадратурным выходом. От тупых "ручек" в формфакторе переменных резисторов до всякой оптики, устанавливаемой на вал шаговика и т.п.
Eddy_Em писал(а):Я в качестве пробы вот такое наваял.
if(tim3cnt != TIM3->CNT){
int32_t diff = TIM3->CNT - tim3cnt;
if(tim3upd){
if(TIM3->CR1 & TIM_CR1_DIR) diff -= 80;
else diff += 80;
tim3upd = 0;
}
tim3cnt = TIM3->CNT;
Чт окт 14, 2021 17:23:31
Чт окт 14, 2021 18:42:51
Этот энкодер разбирали в нескольких темах АВР, к одной и я приложил свою руку. Что могу сказать? Новый такой энкодер дребезжит действительно только на фронтах замыкания/размыкания контактов. Однако, после одной-двух тысяч поворотов он перестает быть новым, и с него лезет такое, что ой! Коллега sunjob привел осциллограммы того, что выдает этот энкодер поизносившись. Далее мы с ним общались в личной переписке, я правил программу, он пробовал ее со своим раздолбанным энкодером, результаты коллега sunjob опубликовал здесь.Dimon456 писал(а):В теме AVR программную обработку перетрясли с ног до головы, но там то же как бы без кондеров ни как.
Чт окт 14, 2021 18:57:41
надо было простоEddy_Em писал(а):я с таким и начинал. Никаких проблем не было
Eddy_Em писал(а):Фильтр настроил - и ОК.
Чт окт 14, 2021 19:03:37
Чт окт 14, 2021 19:17:27
Да куда уж максимальнееEddy_Em писал(а):а не пробовали задрать фильтр на максимум?
TIM3->CR1 |= TIM_CR1_CKD_1;
TIM3->CCMR1 |= TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_1 | TIM_CCMR1_IC1F_0;
TIM3->CCMR1 |= TIM_CCMR1_IC2F_3 | TIM_CCMR1_IC2F_2 | TIM_CCMR1_IC2F_1 | TIM_CCMR1_IC2F_0;
Чт окт 14, 2021 20:49:34
Чт окт 14, 2021 21:06:35
Чт окт 14, 2021 21:40:14
Чт окт 14, 2021 21:57:18
Пт окт 15, 2021 06:37:42
Пт окт 15, 2021 08:13:16
Делается довольно просто: берем тихий слабенький движок с редуктором, 30-90 об/мин, через гибкий вал (отрезок резинового шланга 6 мм внутренний) подключаем его к энкодеру и запускаем на некоторое время. Раз в полчаса смотрим, что он выдает. Заодно можно будет оценить долговечность этого энкодера и косвенно - всей партии этих энкодеров, купленной у одного продавца.Eddy_Em писал(а):Надо будет, если уж делать будет нефиг на выходных, раздраконить один свой энкодер, чтобы звенел получше
Сб окт 16, 2021 15:43:33
// Внутренний триггер для слейва выставляем на сигнал Update
TIM_SelectOutputTrigger(TIM3, TIM_TRGOSource_Update);
//Обозначаем TIM3 как мастер
TIM_SelectMasterSlaveMode(TIM3, TIM_MasterSlaveMode_Enable);
//Для TIM3 Master необходим TIM4 Slave TS=TIM4_ITR2
TIM_SelectInputTrigger(TIM4, TIM_TS_ITR2);
//Выбираем тип связи таймеров
TIM_SelectSlaveMode(TIM4, TIM_SlaveMode_External1);
Сб окт 16, 2021 18:19:37
Вот именно, без разницы.a797945 писал(а):какая разница сколько именно натрещит энкодер при резком повороте.
А я так не делал.a797945 писал(а):Резко крутанули - параметр +10. Я так делал.