![]() |
Cầu cứu QEI
em đang lập trình cho dsPIC 30f4011 điều khiển động cơ DC
khi sử dụng module QEI nếu sử dụng cả hai pha A & B thì thường gây nhiễu trên đường truyền, mỗi khi động cơ chạy thì VDK bị reset. Bây giờ em chỉ sử dụng 1 pha A hoặc B thì cần thiết lập thế nào và giá trị PSOCNT sẽ cập nhật ra sao? dưới dây là code em đang dùng hai pha: void INT_QEI() { _TRISB4=1; _TRISB5=1; /* Enable QEI Interrupt and Priority to "1" */ ConfigIntQEI(QEI_INT_PRI_5 & QEI_INT_DISABLE); POSCNT = 0; MAXCNT = 0xffff; OpenQEI(QEI_DIR_SEL_CNTRL & QEI_INDEX_RESET_DISABLE & QEI_GATED_ACC_DISABLE & QEI_LOGIC_CONTROL_IO & QEI_INPUTS_NOSWAP & //QEI_MODE_TIMER & //QEI_MODE_x2_MATCH & QEI_MODE_x4_MATCH & QEI_IDLE_STOP, 0); //// QEICONbits.UPDN = 1; }; mong được giúp đỡ thanks! |
muốn điều khiển động cơ bằng QEI thì phải dùng cả 2 pha A và B, ngoài ra con có pha index. Mình thấy có thể vòng loop của bạn bị reset vì chương trình chứ không phải là do nhiễu trên pha A, B vì thường trong QEI module nó có cái filter để khử noise rồi. Bạn xem lại controller của bạn xem.
|
Múi giờ GMT. Hiện tại là 11:38 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam