运行一个中断/计时器x秒钟?

时间:2012-10-16 03:03:30

标签: c microcontroller

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

1 个答案:

答案 0 :(得分:0)

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

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