标题:
关于单片定时器中断的工作有点不理解的地方
[打印本页]
作者:
GeorgeTam
时间:
2020-4-19 12:50
标题:
关于单片定时器中断的工作有点不理解的地方
void T0_time() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num=10)
num=0;
}
上面是我的定时器中断程序,我是想要延时0.5s
我想问下
在主程序TR0=1之后,定时器开始运作,到时间了之后响应中断进入中断程序,那cpu到底是怎样运作的呢
1、 cpu是重装初值,然后一直num+1,一直等待定时器计数完成后再跳出中断返回执行主程序。还是
2、 cpu重装初值,num+1,就直接跳出中断程序,返回执行主程序,知道下一次的中断来临,再去响应进入中断程序。
希望大佬可以教教小白
作者:
我未曾来过
时间:
2020-4-19 17:34
第二个没错。中断服务从上到下依次执行完了就跳到主程序记录的地方。直到你下一次开启中断
作者:
wulin
时间:
2020-4-19 17:36
在主程序TR0=1之后,定时器开始运作,CPU与其各干各的事,50ms时间到,定时器向CPU打个招呼(中断请求),CPU做个标记,放下手上的事,执行下面中断任务:
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num=10)
num=0;
CPU完成中断任务后回到标记处接着干原来的事。如此反复持续到掉电或TR0=0。
作者:
csmyldl
时间:
2020-4-19 21:03
第2条基本正确,但跳出中断是该中断程序执行完而又未响应新的中断
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1