ВНИМАНИЕ! На форуме началось голосование в конкурсе - астрофотография месяца АПРЕЛЬ!
0 Пользователей и 1 Гость просматривают эту тему.
Ваня было бы неплохо, а то как то два МК в схеме ....
SIGNAL(SIG_OVERFLOW0){ uint8_t state = (PINB >> PB6) & 3; state = state ^ (state >> 1); // make cycle from 00,01, 11, 10 to the right order 00, 01, 10, 11 = 0,1,2,3 uint8_t dif = (state - encState) & 3; if( dif == 1 ) { encMove++; } else if( dif == 3 ) { encMove--; } encState = state; TCNT0 = 0;}
Входы PD6 и PD7
Подумал, и еще чуть упростил функцию следящую за энкодером, и висящую на прерывании. Она должна быть максимально быстрая.
Исправился, PB6 PB7 6-я и 7-я ножка
Работает.Чуть непривычно шаги считает - при одном шаге энкодера делает 4 шага,при пол шаге - 2 шага и т.д.Правда на 12-ти шаговом энкодере пробовал,надо 24-х проверить.
while( encMove > 0 ) { encMove--; doStepFMotor(1); updateScreen = 1; motPow = 250; } while( encMove < 0 ) { encMove++; doStepFMotor(-1); updateScreen = 1; motPow = 250; }
while( encMove > 2 ) { encMove -= 4; doStepFMotor(1); updateScreen = 1; motPow = 250; } while( encMove < -1 ) { encMove += 4; doStepFMotor(-1); updateScreen = 1; motPow = 250; }
Попробую.Ускорение на энкодере не подскажешь как убрать,оно похоже лишнее с практической стороны - пальцы не могут по кругу крутится и получается движение рывками
Ускорение придется отключить во всех движениях фокусера.Я куплю себе энкодер и поиграюсь, так вслепую сложно что-то советовать. Движение можеть быть рывками и запаздывать, но шаги пропускать не должно.
Если нужен только каждый 4-й, то это место
ЦитатаЕсли нужен только каждый 4-й, то это место На практике выглядит примерно так:23022012011.mp4Для планетчиков помоему как тонкая фокусировка идеальный вариант.
Павел а этот мод тоже в прошивке Ответ #1303 ?
sda-scl перекидывал, связь совсем теряется, даже "wait" не горит так что с подключением точно все ок.