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.
您好!
我正在编码一个归零例程、在此例程中、我想在正交编码器上找到精确的索引脉冲。
我想使用数据表中的"reset on first index marker"选项。 为此、我设置 EQepsRegs.QEPCTL.PCRM = 2;但这不会执行任何操作...
我可以通过将 QEPCTL.IEI 位设置为1或将.PCRM 设置为0来获得要在索引标记上复位的位置、但这会每次复位编码器。
要使 PCRM = 2正常工作、我还需要做些什么吗?
谢谢
1月
您好、Jan、
您能更详细地解释一下吗、当您的设置 PCRM=2时会发生什么情况? 当您说它不起作用时、您意味着位置计数器没有复位?
以下是有关 PCRM=2时应达到的预期要求的说明:
如果在正向运动期间发生索引事件、则位置计数器在下一个 eQEP 时钟上复位为0。 如果在反向移动期间发生索引事件、则位置计数器会在下一个 eQEP 时钟上复位到 QPOSMAX 寄存器中的值。 请注意、这仅在第一次出现时完成、之后位置计数器值不会在索引事件时复位;相反、它会根据最大位置进行复位。
此致、
Nirav
您好、Jan、
重新启动代码执行不会复位 eQEP 寄存器、您将需要执行 CPU 复位以清除任何设置位、而无需执行断电。 使用 PRCM=2的思路是记住第一个索引事件并仅重置位置计数器一次、而不必对任何后续的索引执行该操作、因此没有寄存器位会清除第一个索引事件、该寄存器位内置在硬件中、 只能通过 CPU 复位或断电来复位。
此致、
Nirav
Nirav、您好!
感谢您的回复。
我对这种方法的想法是:首先、我将一个滚珠轴驱动轴置于一个不精确的家用开关上(我在执行此操作时遇到了多个索引事件)。 然后、我搜索下一个索引事件作为我的准确原始位置(我可以使用索引事件标记作为标志来指示发生了此情况)。
但是、还有一些其他的非正常解决方案、因此我将在那时解决这个问题。
此致、
1月