单片机中的中断问题,
while(1)是不是就是延时的,第一次执行到while时程序应该就回不去了吧,只能等中断的到来,中断结束时又回到while,然后就没有什么动作了吧,中断函数是只执行一次...
while(1)是不是就是延时的,第一次执行到while时程序应该就回不去了吧,只能等中断的到来,中断结束时又回到while,然后就没有什么动作了吧,中断函数是只执行一次吗,感觉tt好像到1后就结束了,一次中断没办法到20吧,还有中断函数对TH0,TL0的赋值是不是多余,main中已经有了?
展开
2个回答
展开全部
过程是这样的:
程序一直在while(1)里面,直到定时器计满产生中断;
产生中断后,执行中断服务程序,定时器重新赋值,tt自加1;
回到while(1),等待下一次中断,定时器继续计数;
定时器产生中断,......反复20次,P10取反。
所以你的问题:
1.中断函数是只执行一次吗
不是,每次执行完之后,由于中断未关,并且T0继续计数,所以后面一直会有中断;
2.还有中断函数对TH0,TL0的赋值是不是多余?
不是。每次产生中断后T0的值已经是0了,不能满足每0.5s/20产生一次中断的初衷,所以重新赋值。
程序一直在while(1)里面,直到定时器计满产生中断;
产生中断后,执行中断服务程序,定时器重新赋值,tt自加1;
回到while(1),等待下一次中断,定时器继续计数;
定时器产生中断,......反复20次,P10取反。
所以你的问题:
1.中断函数是只执行一次吗
不是,每次执行完之后,由于中断未关,并且T0继续计数,所以后面一直会有中断;
2.还有中断函数对TH0,TL0的赋值是不是多余?
不是。每次产生中断后T0的值已经是0了,不能满足每0.5s/20产生一次中断的初衷,所以重新赋值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询