你们好,我刚学习TMS320F28335,很多不懂,在此请教各位,谢谢。 在0和1之间变化,应该没对,但没找到问题出在哪里,请各位多多帮忙,谢谢, 也按照以下说明连接了这3个相应管脚, GPIO20/EQEP1A <- GPIO0/EPWM1A (simulates EQEP Phase A signal) |
rong zhang:
网上也有网友遇到了这个问题的,EQep1Regs.QPOSCNT值一直为0,但都没给出解决思路,特请教各位,谢谢,
你们好,我刚学习TMS320F28335,很多不懂,在此请教各位,谢谢。 在0和1之间变化,应该没对,但没找到问题出在哪里,请各位多多帮忙,谢谢, 也按照以下说明连接了这3个相应管脚, GPIO20/EQEP1A <- GPIO0/EPWM1A (simulates EQEP Phase A signal) |
mangui zhang:
回复 rong zhang:
如果保证了你的输入信号是没有问题的 那就是设置问题 如果只是0和1肯定是有问题的
你送入eqep的A B相信号 是否正确 连续
Z相有没有同时送入 Z相会使计数清零的
下面代码请参考
void PosSpeed_Init(void){ #if (CPU_FRQ_150MHZ) EQep1Regs.QUPRD=1500000; / Unit Timer for 100Hz at 150 MHz SYSCLKOUT =10ms#endif /在150MHz系统时钟下产生100Hz的单位时间值,即让qep10ms产生一次timeout中断 #if (CPU_FRQ_100MHZ) EQep1Regs.QUPRD=1000000; // Unit Timer for 100Hz at 100 MHz SYSCLKOUT#endif EQep1Regs.QPOSCNT = 0; EQep1Regs.QDECCTL.bit.QSRC=00;// QEP quadrature count mode 求积计数模式:产生方向和4倍频的时钟 EQep1Regs.QDECCTL.bit.XCR=0; // 2x resolution (cnt falling and rising edges) EQep1Regs.QDECCTL.bit.SWAP=0; EQep1Regs.QDECCTL.bit.IGATE=1; //该位置1后,连索引脉冲都过滤了 EQep1Regs.QDECCTL.bit.QAP=0; EQep1Regs.QDECCTL.bit.QBP=0; EQep1Regs.QDECCTL.bit.QIP=0; EQep1Regs.QDECCTL.bit.QSP=0; EQep1Regs.QEPCTL.bit.FREE_SOFT=2; //自然地动作 EQep1Regs.QEPCTL.bit.PCRM=00; // 每次索引事件产生时QPOSCNT复位// EQep1Regs.QEPCTL.bit.PCRM=01; // 最大计数位置时QPOSCNT复位 EQep1Regs.QEPCTL.bit.UTE=1; // Unit Timeout Enable 使能单位定时器 EQep1Regs.QEPCTL.bit.QCLM=1; // Latch on unit time out使能单位时间输出时其他重要寄存器的锁存功能// EQep1Regs.QPOSMAX=0xffffffff; //位置的最大计算值 EQep1Regs.QPOSMAX=7999; //位置的最大计算值 EQep1Regs.QEPCTL.bit.QPEN=1; // QEP enable 使能QEP EQep1Regs.QCAPCTL.bit.UPPS=5; // 1/32 for unit position即每32个QCLK产生一个单位位置时件 EQep1Regs.QCAPCTL.bit.CCPS=7; // 1/128 for CAP clock 即捕捉定时器的时钟频率为SYSCLKOUT/128 EQep1Regs.QCAPCTL.bit.CEN=1; // QEP Capture Enable 使能QEP捕捉功能 }
你们好,我刚学习TMS320F28335,很多不懂,在此请教各位,谢谢。 在0和1之间变化,应该没对,但没找到问题出在哪里,请各位多多帮忙,谢谢, 也按照以下说明连接了这3个相应管脚, GPIO20/EQEP1A <- GPIO0/EPWM1A (simulates EQEP Phase A signal) |
min Kong:
回复 mangui zhang:
能不能提供一个28335控制直流电机双闭环直流调速的例程,PID控制的,谢谢