工具/软件:
尊敬的专家:
我的客户 使用 CLB 来实现 QEP 功能。 其中 QEP 的 Z 脉冲用于触发 HLC 中断。
但是、他们发现 HLC 无法正常工作。
该用例与以下示例类似:
HLC 输入3:外部 Z 脉冲(作为 CLB 输入5)
用于 intput3的 HLC 程序:MOV C0至 R0;INTR5
1.当我们运行程序时,我们观察 counter0, R0和 CLB 中断标签(在 CLB 模块内的标志,而不是外围中断标志),
我们发现 C0在增加、但 R0保持为0。 中断标签保持为0。 HLC 仍然无效。
2.然后,我们检查输入信号。 我们将 Z 脉冲(CLB 输入5)路由到另一个计数器(计数器1)、我们正确设置计数器1、以便它可以对 Z 脉冲上升沿进行计数。
事实证明、随着 Z pulse 的到来、counter1会按预期增加。 但是、HLC 仍然无效。
3.然后,我们尝试了包含 HLC 函数的 CLB 示例 ex11,它工作正常。
总之、CLB 中的每个模块都正常工作、HLC 除外。 CLB 中应该存在一些初始化问题。
我的问题是、HLC 有什么特别之处、在初始化时是否需要格外小心?
使用 ex11会非常困难、因为客户使用 COFF 和大量寄存器结构。 我们想检查 CLB 状态以查看 HLC 是否已正确初始化。 您能否共享 HLC 才能正常工作的关键寄存器?