您好!
我正在尝试加载计数器的计数寄存器。 根据 TRM 第26.4.2.2节,“这个寄存器可以在计数开始前被静态加载,也可以在运行时被动态加载。” 这让我相信、除了事件机制之外、还有其他方法可用于加载计数寄存器。 这是真的、还是我误解了这句话、而且必须始终使用这些事件?
谢谢、
ED
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.
您好!
我正在尝试加载计数器的计数寄存器。 根据 TRM 第26.4.2.2节,“这个寄存器可以在计数开始前被静态加载,也可以在运行时被动态加载。” 这让我相信、除了事件机制之外、还有其他方法可用于加载计数寄存器。 这是真的、还是我误解了这句话、而且必须始终使用这些事件?
谢谢、
ED
你好、Nima、
CLB_writeInteface 函数用于写入计数器和 HLC 的外设寄存器。 但我看不到用于写入计数器计数寄存器的示例。 我目前的理解是、写入该值的唯一方法是、当相应块上发生事件时、从计数器的加载寄存器或 HLC 的寄存器中写入该值。 但是、有一种机制可以通过只读的 CLB_DBG_CX 寄存 器读取计数寄存器。 我希望有一种类似的方法来编写它、这种方法只能通过微处理器来完成、不需要事件。 有这样的能力吗?
谢谢、
ED
你是对的。 我说错了。 我过去就是这样做的:
1.将 CTR 的新值写入 FIFO。
2.生成触发器以使 HLC 运行程序。
3. HLC 将 FIFO 中的值拉至 CX。
CLB 的 EX7:
CLB_writeInterface(CLB1_BASE, CLB_ADDR_COUNTER_1_LOAD, period); HWREG(CLB1_BASE + CLB_LOGICCTL + CLB_O_BUF_PTR) = 0U; HWREG(CLB1_BASE + CLB_DATAEXCH + CLB_O_PULL(0)) = period; HWREG(CLB1_BASE + CLB_DATAEXCH + CLB_O_PULL(1)) = duty; CLB_setGPREG(CLB1_BASE, 1 << TRIGGER_PWM_UPDATE_SHIFT);
NIMA