This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

F28335-QEP中断读数

我最近在使用F28335-QEP的程序,我理解的是应该在qep的中断里面来读取两次位置计数器的QPOSCNT的值,然后做差得出一段时间内转过的脉冲数,但是pmsm的例程HVPM_Sensorless_2833x_的程序中有关 QEP_MACRO(1,qep1)中有句代码是这样写的

/* Check an index occurrence*/ \
if ((*eQEP[m]).QFLG.bit.IEL == 1) \这句话是检测到index信号,发生中断
{ \
v.IndexSyncFlag = 0x00F0; \这句话我不知道是什么意思
v.QepCountIndex = (*eQEP[m]).QPOSILAT; \这句话是说将计数器(QPOSCNT)的值赋给v.QepCountIndex 
(*eQEP[m]).QCLR.bit.IEL = 1; /* Clear interrupt flag */ \这句话是清中断(既然要清中断,说明之前肯定应该有中断置位、并且有中断程序才对)
} \

不知道我上面的理解对不对?如果对的话,在HVPM_Sensorless_2833x中只有一个主中断,我没有找到有关index事件引起的中断,请TI人指点,谢谢

  • 一般做法是每中断一次     记录一次当前值    

    然后和上次的值作比较     如果大于上次保存的值    就做差计算  

    如果小于上次的值     说明溢出了   需要做差后加0xffff

x 出现错误。请重试或与管理员联系。