TI中文支持网
TI专业的中文技术问题搜集分享网站

28335EQEP的位置计数器怎么清零?

我想要在光电标码盘到达一定位置后将 位置计数器清零,然后再继续运行, 

EQep1Regs.QDECCTL.bit.QSRC=00;      //设定eQep的计数模式为正交模式
 EQep1Regs.QEPCTL.bit.FREE_SOFT=2;
 EQep1Regs.QEPCTL.bit.PCRM=01;
 EQep1Regs.QEPCTL.bit.IEI=2;
 EQep1Regs.QPOSINIT=1182;
 EQep1Regs.QEPCTL.bit.UTE=1;         //使能UTE单元溢出功能
 EQep1Regs.QEPCTL.bit.QCLM=1;        //当UTE单元溢出时允许锁存
 EQep1Regs.QEPCTL.bit.QPEN=1;        //使能eQEP
 EQep1Regs.QCAPCTL.bit.UPPS=5;       //1/32 for unit position
 EQep1Regs.QCAPCTL.bit.CCPS=7;       //1/128 for CAP clock
 EQep1Regs.QCAPCTL.bit.CEN=1;        //使能eQEP的捕获功能
 EQep1Regs.QPOSMAX=p->Encoder_N;     //设定计数器的最大值
 EQep1Regs.QEPCTL.bit.SWI=1;         //软件强制产生一次Index脉冲
 EQep1Regs.QPOSCNT = 0;
 InitEQep1Gpio();                    //初始化eQEP相关引脚

可是寄存器看出来没有清零,想请教一下,谢谢

HeiHei:可以选择在计数器最大值后清零,也可以每个index后清零

我想要在光电标码盘到达一定位置后将 位置计数器清零,然后再继续运行, 

EQep1Regs.QDECCTL.bit.QSRC=00;      //设定eQep的计数模式为正交模式
 EQep1Regs.QEPCTL.bit.FREE_SOFT=2;
 EQep1Regs.QEPCTL.bit.PCRM=01;
 EQep1Regs.QEPCTL.bit.IEI=2;
 EQep1Regs.QPOSINIT=1182;
 EQep1Regs.QEPCTL.bit.UTE=1;         //使能UTE单元溢出功能
 EQep1Regs.QEPCTL.bit.QCLM=1;        //当UTE单元溢出时允许锁存
 EQep1Regs.QEPCTL.bit.QPEN=1;        //使能eQEP
 EQep1Regs.QCAPCTL.bit.UPPS=5;       //1/32 for unit position
 EQep1Regs.QCAPCTL.bit.CCPS=7;       //1/128 for CAP clock
 EQep1Regs.QCAPCTL.bit.CEN=1;        //使能eQEP的捕获功能
 EQep1Regs.QPOSMAX=p->Encoder_N;     //设定计数器的最大值
 EQep1Regs.QEPCTL.bit.SWI=1;         //软件强制产生一次Index脉冲
 EQep1Regs.QPOSCNT = 0;
 InitEQep1Gpio();                    //初始化eQEP相关引脚

可是寄存器看出来没有清零,想请教一下,谢谢

mangui zhang:

计数器一般都会有清零的寄存器     如果实在没有  

那你就将上一次的记录下来   当做下一次的初始值

然后相互做差   如果溢出    加ffff处理

赞(0)
未经允许不得转载:TI中文支持网 » 28335EQEP的位置计数器怎么清零?
分享到: 更多 (0)