“线程:测试”中讨论的其它部件
你(们)好,
我正在尝试中断以更改切换周期和占空比。 中断期小于200ns, 计时器中断(15.625MHz,64 ns)很难实现这一中断期。 请问是否还有其它频率较高的中断,如果有,我可以用什么例子吗?
谢谢
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.
你(们)好,
我正在尝试中断以更改切换周期和占空比。 中断期小于200ns, 计时器中断(15.625MHz,64 ns)很难实现这一中断期。 请问是否还有其它频率较高的中断,如果有,我可以用什么例子吗?
谢谢
ARM7内核的标称指令周期为32 ns。 ARM 估计,平均指令需要1.9个指令周期。 意味着您可以在200 ns 的时间内执行3个指令。 但我认为,内部处理器整理进入中断至少需要9个指令周期,而不是计算您需要推入或预载的寄存器。 所以你不能这么快地打断。 请注意,您正在请求5 MHz 的中断,这意味着带宽非常高。 除非您尝试进行高速信封跟踪或类似的操作,否则您不需要太多带宽。
如果您能告诉我们您需要做什么,也许我们可以告诉您如何使用高速状态机和 UCD 专用控制引擎的故障处理能力来完成这项工作。 它设计用于处理高速设备。 要使用200 ns 的处理器执行有意义的操作,您可能需要一个更昂贵,更耗电的微控制器。
UCD 不是一个很好的任意模式生成器。 可能可以使用同步引脚并在 DPWM 上使用同步引脚重置另一个引脚,然后使用 IntraMux 和 Edge Gen 逻辑执行巧妙的操作,但这会耗费大量头骨汗水和时间。 如果要接近,可以尝试将 DPWM 引脚转换为 I/O,并执行一系列 Dpwm0Regs.DPWMCTRL1.All = x 语句,其中只更改 GPIO _A_VAL 和 GPIO _B_VAL 位。 您不能只写入单个位,因为这需要读取,一些逻辑操作和写入,这需要太长的时间。 向所有人写入将需要3到5个指令周期,它将在球场上。 你可以用一两个 NOP 指令来接近165。 当然,你的分辨率是32 ns。