DSP论坛
直播中

木木歪腻

3年用户 6经验值
擅长:嵌入式技术
私信 关注

TI C2000 F28069 EQEP收到索引事件后位置计数器不复位

使用TIC2000芯片F28069做电机控制,光编ABZ信号使用EQEP采集位置信息,编码器线数是86400,在上电过零的时候,旋转电机,已经触发了索引事件,但是位置计数器不复位;
EQep1Regs.QFLG.bit.IEL,索引事件已经发生,该位已经置为1了,但是位置计数器EQep1Regs.QPOSCNT却没有复位
初始化如下:

EALLOW; EQep1Regs.QDECCTL.bit.QSRC=00; // QEP quadrature count mode EQep1Regs.QDECCTL.bit.XCR=0; // 0:上升沿和下降沿都计数,1:上升沿计数 EQep1Regs.QEPCTL.bit.FREE_SOFT=2; // 仿真挂起对其无影响 EQep1Regs.QEPCTL.bit.PCRM=00; // 00:索引事件发生时复位,01:计数最大时复位 // 10:第一次索引事件时复位,11:单位时间输出时间时复位 EQep1Regs.QEPCTL.bit.IEI=0x10; // 10:在QEPI上升沿初始化位置计数器,11:在下降沿,0x:无动作 EQep1Regs.QEPCTL.bit.IEL=0x01; // 01:在QEPI上升沿将QPOSCNT的值锁存到QPOSILAT中 // 10:下降沿,11:软件发起一次事件 EQep1Regs.QEPCTL.bit.QPEN=1; // 使能QEP位置计数器 EQep1Regs.QEPCTL.bit.QCLM=1; // 0:在CPU读取位置计数器的值时锁存,1:定时器基准单元超时事件时锁存 EQep1Regs.QEPCTL.bit.UTE=1; // 使能eQEP定时器基准单元 EQep1Regs.QPOSMAX = 345599; // 码盘一周脉冲数的4倍(根据倍频的倍数而定,这里用4倍频) EQep1Regs.QEPCTL.bit.QPEN=1; // QEP enable EQep1Regs.QCAPCTL.bit.UPPS=7; // 1/32 for unit position EQep1Regs.QCAPCTL.bit.CCPS=7; // 1/128 for CAP clock EQep1Regs.QCAPCTL.bit.CEN=1; // QEP Capture Enable EDIS;

回帖(1)

木木歪腻

2022-7-7 22:16:50
有时候会出现,有时候不会出现
举报

更多回帖

发帖
×
20
完善资料,
赚取积分