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!
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!