使用 TeensyTimerTool 的 Teensy 4.1 多 MHz 速度中断
如我们的示例 Teensy 4.1 PlatformIO 2MHz 定时器中断 GPIO 输出所示,你可以使用 TeensyTimerTool 生成多 MHz 定时器中断。在我们的实验中,我们可以生成高达 4 MHz 的 GPIO 切换中断:

这里的技巧是使用 std::chrono 时间字面量。TeensyTimerTools PeriodicTimer 示例只向我们展示了如何使用微秒分辨率:
periodic_timer_example.cpp
t1.begin(callback, 250'000); // 250ms
但我们可以简单地使用 250ns 来获得纳秒分辨率:
periodic_timer_example.cpp
t1.begin(callback, 250ns);以下是我们观察到的有效和无效的内容:
- 如我们的示例所示的多 MHz GPIO 切换中断只在
GPT1和GPT2上有效,它们在PIT和TMRx上无效。我们没有调查其背后的确切原因,可能也有其他方法 - 像往常一样,中断必须只包含少量指令。我们使用
digitalWriteFast(),但使用直接寄存器访问会更快。
Check out similar posts by category:
Electronics, Embedded, PlatformIO, Teensy
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow