yesno 发表于 2012-4-11 23:55:31

定时中断,搞不懂。初学者。

其实原理是知道的。但是在程序里面的运行流程,过程是怎样的有点含糊。你们看看这个图片里面的程序我看的懂。意思也理解一点。也知道那个原理意思;就是说在做主程序时突然计数器溢出就执行中断函数,中断函数做完后再返回刚才主程序断点的地方又开始做、我虽然知道这些,但是还是迷糊的很、、、迷迷糊糊的。。执行完中断函数后是否返回到主程序我好想听说不再执行主程序其他的,就是从断点开始运行。我是想问TMOD EA ET0 TR0 这些是否都要运行一边啊?我的意思是想问问中断函数做完后是否还要运行一遍TMOD EA ET0 TR0 这些东西。
我希望个位老师们为我细细解说一下。我就要知道流程过程。。好想知道。、、详细详细,。,。。麻烦把程序运行过程说三次以上、、、不然我还是不明白的。麻烦啦。。好急好急啊、、、一直被困扰着{:dizzy:} 虽然很多网友都为我解释啦。但还是有点生。。

lyfs 发表于 2012-4-12 00:51:24

{:biggrin:}单步调试,你就懂了

wthzack 发表于 2012-4-12 01:29:59

不要太钻牛角尖 , 就像被规定水杯满时 , 一定要去把水喝掉 .
你讲的那些 , 只是确定你要把水阀打开 , 也确定要有水 , 你才能一杯一杯的喝 .
你喝完时又没把水阀关掉 , 干麻在开水阀 ?

yesno 发表于 2012-4-12 14:16:48

我的问题很幼稚吗?怎么都没人说说啊,起码多说点我也可以多看点嘛!{:dizzy:}

renwocai 发表于 2012-4-13 21:01:44

“中断函数做完后是否还要运行一遍TMOD EA ET0 TR0 这些东西”
不用,这个中断是从哪里被打断就再回到哪里,所以完成后会再回到while(1)

sniper.q 发表于 2012-4-14 04:17:21

以前开到个很经典的中断解释。
把大象放冰箱:打开冰箱门---把大象放进去---关闭冰箱门。中断就是你在做任何一步时,老婆打电话来了,不接电话会引起家庭问题,所有要优先接老婆电话(优先级),接完电话在接着原来的顺序把大象放冰箱。打开冰箱门---老婆来电话(中断)---执行老婆下达指令(中断处理)---老婆的人物做完回来放大象(中断返回并执行原任务)---关闭冰箱门

davidd 发表于 2012-4-14 07:48:00

程序的注释已经很清楚了。不知楼主是怎么学习的。要多做实验,再不济就在keil仿真运行试试。
主程序while(1)前面的语句只执行一遍,负责定时器的初始化及打开中断,这个只要执行一次就够了。
主程序运行到while(1)进入死循环,等待定时器的中断。50ms定时到,定时器发出中断请求,CPU收到该请求,就会中断当前的while(1),并将断点地址入栈,然后转到对应的中断入口,再跳到中断服务程序。
由于是C语言编程,有关的断点地址入栈、跳转到中断服务程序,从程序里你是看不到的。
目前你知道定时器中断请求发生,CPU响应并停止当前的while(1), 跳到T0_time(), 就行了。在中断服务程序结束后CPU会返回到while(1),继续那个断点运行(断点地址是从栈里弹出的),等待下一次的定时器中断。

xiaobendan001 发表于 2012-4-14 07:53:42

你喜欢每次都执行,也不会有问题的

davidd 发表于 2012-4-14 09:29:25

初始化原则上执行一次,除非有特殊的需求,如抗干扰等。这里的定时器初始化如果每次中断后都执行一次,会影响定时精度的。

中国人 发表于 2012-4-15 13:53:55

他们不会再执行第二次了,它们只会执行一次,因为你程序里面有while(1)语句,所以当所有语句执行完以后程序只会停留在while(1)语句这里循环。并且,即使是你把while(1)语句去掉,它们也只会是执行一次,除非你把那些语句放在while(1)语句里面,那么它们就会跟着while(1)语句在那里循环。

guozaizb 发表于 2012-4-15 16:42:28

我遇到这种问题,好晕

millwood0 发表于 2012-4-15 18:37:43

麻烦把程序运行过程说三次以上、、、不然我还是不明白的。

dense, very dense.

lxa0 发表于 2012-4-15 23:47:57

初始化完成后就不用再管它了
除非你有别的特殊用途
才需要再次改变它

yesno 发表于 2012-4-18 13:37:41

millwood0 发表于 2012-4-15 18:37 static/image/common/back.gif
dense, very dense.

什么意思啊??

如果 发表于 2012-4-18 14:36:20

yesno 发表于 2012-4-18 13:37 static/image/common/back.gif
什么意思啊??

愚钝的意思

yesno 发表于 2012-4-18 20:03:11

如果 发表于 2012-4-18 14:36 static/image/common/back.gif
愚钝的意思

你好聪明。可以不拉{:curse:}
页: [1]
查看完整版本: 定时中断,搞不懂。初学者。