运行中断/定时器 x 秒?

Posted

技术标签:

【中文标题】运行中断/定时器 x 秒?【英文标题】:Run an interrupt/timer for x amount of seconds? 【发布时间】:2012-10-16 03:03:30 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

经过一番研究,我意识到我问错了问题。但是,您提到了一个计时器。正确的是这里的问题:***.com/questions/12929226/…。非常感谢您的意见。

以上是关于运行中断/定时器 x 秒?的主要内容,如果未能解决你的问题,请参考以下文章

关于定时器中断怎么理解?

实例7:stc8a8k定时器0,定时50ms,进入中断之后,加数20次到1秒,计算时间。

蓝桥杯国赛——第三站RTC秒中断

蓝桥杯单片机定时器与中断秒表实验+Proteus仿真

定时器/计数器0之定时器

stm32 如何产生秒脉冲中断