ВНИМАНИЕ! На форуме начался конкурс - астрофотография месяца ИЮЛЬ!
0 Пользователей и 2 Гостей просматривают эту тему.
Cхемка тут https://astronomy.ru/forum/index.php/topic,13180.msg1791881.html#msg1791881?Какой тип энкодера?
Вань есть небольшой нюанс в программе твоей, в окошке позиция значения меняются а вот направление вращения U,D стоит на месте когда крутишь энкодер, с программы на компьютере когда крутишь фокусер направление меняется
Понял, посмотрю в прошивке.
Какой тип энкодера?
У этого энкодера общий по центру.Может перепутали.
Собрал энкодер,только крутит почему-то только в одну сторону ,диод горит постоянно
ЦитатаСобрал энкодер,только крутит почему-то только в одну сторону ,диод горит постоянноСдох энкодер.Заменил.Работало примерно минуту и опять то-же самое.Есть у кого идеи почему они дохнут?
Собрал энкодер,только крутит почему-то только в одну сторону ,диод горит постоянно.Пару раз начинал крить и обратно но не долго.Энкодер такой http://web.argus.lv/shop/productinfo/EC12E1220813/hwindex.htmМожет пик прошил не так,там устовки какие нужны или всё в прошивке указано?
list P=PIC12F675 #include<p12f675.inc>; Configuration is:; Master Clear pin is disabled (used as input); Code Protection is OFF; Watchdog Timer is ON; Oscillator is Internal RC __FUSES _CP_OFF & _MCLRE_OFF &_BODEN_ON & _CP_OFF & _WDT_ON & _INTRC_OSC_NOCLKOUTCBLOCK 20hReg_1 Reg_2 Reg_3ENDC #define CW_in GPIO,0#define CCW_in GPIO,1#define Led GPIO,2#define dir_revers GPIO,3#define step GPIO,4#define dir GPIO,5 org 0x00 goto Init_IO org 0x04 retfieInit_IO clrf INTCON bsf STATUS, RP0 ; bank 1 clrf OPTION_REG clrf PIE1 clrf WPU movlw H'FF' movwf TRISIO clrf VRCON movlw B'01100000' ; все входы цифровые movwf ANSEL bcf TRISIO, 5 ; выход bcf TRISIO, 4 ; выход bsf TRISIO, 3 ; вход dir реверс bcf TRISIO, 2 ; светодиод выход bsf TRISIO, 0 ; вход bsf TRISIO, 1 ; вход bcf OPTION_REG, NOT_GPPU ; подтягивающий резистор к кнопке bsf WPU,0 ; подтягивающий резистор к кнопке bsf WPU,1 ; подтягивающий резистор к кнопке bcf STATUS, RP0 ; bank 0 bsf CMCON, CM0 ; выключить компараторы bsf CMCON, CM1 bsf CMCON, CM2 clrf ADCON0 ; выключить АЦП bcf STATUS, RP0 ; bank 0 clrwdt movlw b'00001110' ;включить WDT пределитель 1:128 movwf OPTION_REG clrwdt bsf GPIO, 2 ; светодиод погасить bsf GPIO, 4 bsf GPIO, 5 Main btfss dir_revers goto Main_Loop_reversMain_Loop clrwdt BANKSEL GPIO btfss CW_in call Step_CW btfss CCW_in call Step_CCW goto Main_LoopStep_CW call Delay btfsc CW_in return bcf dir nop bcf step nop bcf Led bsf stepWait_zero_CCW clrwdt btfsc CCW_in goto Wait_zero_CCW call Delay btfsc CCW_in goto Wait_zero_CCWWait_1_CCW clrwdt btfss CCW_in goto Wait_1_CCW call Delay btfss CCW_in goto Wait_1_CCW bcf dir bsf Led returnStep_CCW call Delay btfsc CCW_in return bsf dir nop bcf step nop bcf Led bsf stepWait_zero_CW clrwdt btfsc CW_in goto Wait_zero_CW call Delay btfsc CW_in goto Wait_zero_CWWait_1_CW clrwdt btfss CW_in goto Wait_1_CW call Delay btfss CW_in goto Wait_1_CW bsf dir bsf Led return;Revers--------------------------Main_Loop_revers clrwdt BANKSEL GPIO btfss CW_in call Step_CW_revers btfss CCW_in call Step_CCW_revers goto Main_Loop_reversStep_CW_revers call Delay btfsc CW_in return bsf dir nop bcf step nop bcf Led bsf stepWait_zero_CCW_revers clrwdt btfsc CCW_in goto Wait_zero_CCW_revers call Delay btfsc CCW_in goto Wait_zero_CCW_reversWait_1_CCW_revers clrwdt btfss CCW_in goto Wait_1_CCW_revers call Delay btfss CCW_in goto Wait_1_CCW_revers bsf dir bsf Led returnStep_CCW_revers call Delay btfsc CCW_in return bcf dir nop bcf step nop bcf Led bsf stepWait_zero_CW_revers clrwdt btfsc CW_in goto Wait_zero_CW_revers call Delay btfsc CW_in goto Wait_zero_CW_reversWait_1_CW_revers clrwdt btfss CW_in goto Wait_1_CW_revers call Delay btfss CW_in goto Wait_1_CW_revers bcf dir bsf Led returnDelay; Задержка 1 000 машинных циклов; Длительность задержки 1 миллисекунд; Частота задающего генератора 4 МГц movlw .75 movwf Reg_1 movlw .2 movwf Reg_2 decfsz Reg_1,F goto $-1 decfsz Reg_2,F goto $-3 return
У меня все работает,но иногда всеже проскакиваютошибки с направлением.
Понравилось такое считывание http://easyelectronics.ru/avr-uchebnyj-kurs-inkrementalnyj-enkoder.html , на досуге сделаю еще одну прошивку.
Цитата: MAKsutik от 21 Фев 2012 [11:03:21]Понравилось такое считывание http://easyelectronics.ru/avr-uchebnyj-kurs-inkrementalnyj-enkoder.html , на досуге сделаю еще одну прошивку.Неплохой алгоритм. Может я его в сам фокусер вставлю, повесив на прерывание по 0-му таймеру. Тем более что в обработке dir-step я забыл компенсацию люфта.