c - 运行中断/计时器 x 秒?

标签 c microcontroller

我正在学习在 Silicon Laboratories C8051F020 工具棒子卡包上使用中断。我想在指定的时间内运行中断。谁能给我举个例子或指出我正确的方向?或者是否有办法运行一个函数 x 秒?

最佳答案

您可以运行“for”循环指定的时间。 您知道 CPU 的速度,因此可以计算运行单个指令所需的时间。然后你就可以知道 for 循环中必须执行的循环次数。 只要确保你的编译器不会优化你的循环......通过删除它! 但是,我不明白你为什么要这样做。通常中断应该运行最短的时间。我从未认为 ISR 中有必要丢失周期。 (除了一些外部同步器的一些周期的小“等待”)。 如果您需要等待很长时间,请使用一个定时器,当时间过去时,它会在溢出时调用自己的ISR。

或者如果你想运行一个每xxx秒运行一次的中断,你不应该主动等待,而是使用定时器来代替。 配置一个每 xxx 秒溢出的计时器,并将代码放入其 ISR 中。一旦启用定时器和 IRQ,您的 ISR 将每 xxx 秒运行一次

关于c - 运行中断/计时器 x 秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12906941/

相关文章:

c - 我应该 `#ifdef DEBUG` 保护 .c 文件中的调试功能吗?

c - 为什么我们使用函数指针的结构?

c - 下面的操作是什么意思?

c - 输入文本并保存到文件

c - 二维数组行/列长度 C

c++ - 将递增/递减运算符放在三元/条件运算符中是否安全?

c - 调用 i2s_read 函数时 ESP32 上出现 StoreProhibited 错误

c - malloc 如何知道当前的空闲内存位置

c# - 是否可以将 c# 嵌入到微 Controller 中

c - 用指针 C 循环