Quantcast
Channel: C2000™︎ 微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 12277

EQep1Regs.QPOSLAT锁存值问题

$
0
0

void InitEQEP1()
{

EQep1Regs.QUPRD=300000; //2ms 产生超时事件中断

EQep1Regs.QDECCTL.bit.QSRC=0; // QEP quadrature count mode
EQep1Regs.QEPCTL.bit.FREE_SOFT=0;
EQep1Regs.QEPCTL.bit.PCRM=01; // 最大值时复位
EQep1Regs.QEPCTL.bit.UTE=1; // Unit Timeout Enable
EQep1Regs.QEPCTL.bit.QCLM=1; // Latch on unit time out
EQep1Regs.QEPCTL.bit.QPEN=1; // QEP enable
EQep1Regs.QCAPCTL.bit.CEN=1;

EQep1Regs.QPOSMAX=4095; //4096
EQep1Regs.QEPCTL.bit.SWI=1; //初始化位置计数器(QPOSCNT=QPOSINIT)
EQep1Regs.QEINT.bit.UTO=1; //使能单位定时器

}


void speedcac()
{

DirectionQep = EQep1Regs.QEPSTS.bit.QDF;

if(EQep1Regs.QFLG.bit.UTO==1) // If unit timeout (one 100Hz period)
{

Position_k=EQep1Regs.QPOSLAT;

EQep1Regs.QCLR.bit.UTO=1; // Clear interrupt flag

}

转速信号如下:


Viewing all articles
Browse latest Browse all 12277

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>