PDA

View Full Version : Cầu cứu QEI


tuongdtd
06-02-2010, 11:35 AM
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!

eeevn
26-02-2010, 03:58 PM
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.