最近看到中断这块,有一处不太理解,希望大家能指点一下。
比如我现在有一个外部中断0的中断函数
这个函数每次延迟50ms
我想实现就是每过10s中让蜂鸣器响一下
我想知道我在调用beep()这个蜂鸣器的函数中不影响此中断么
就比如我这个beep里面有delay(100)这样的 那岂不是我每调用
一次就会有这么多的误差吗
void t0() interrupt 1
{
if(++count==200)
{
beep();
count=0;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
实际上根据我的实验效果看
只要delay函数不超过interrupt函数的时间就没有问题
当delay函数在执行++操作时 中断函数并没有被delay打断
而是按照他原来自己的时钟执行 所以我初步判断只要delay函数的时间小于
中断这个程序就不会有错,但是应该把delay时间调短一点 要不然就失去了中断节省CPU的意义了
中断函数并不是执行到delay就把自己的模式中断 简而言之他们是两个完全独立的
只有当中断溢出的时候才会中断CPU当前操作。 不知道我想的对不对
一周热门 更多>