永发信息网

为什么单片机中断程序执行时主程序还在慢慢运行?初学~~~

答案:5  悬赏:10  手机版
解决时间 2021-01-13 09:47
为什么单片机中断程序执行时主程序还在慢慢运行?初学~~~
最佳答案
你从哪看出来程序还在运行的,你的中断只有一句,马上就执行完成了,就跳出中断函数继续执行之前的程序了,你要是想观察中断后主程序是否运行,应该用死循环或者延时吧程序指针留在中断函数里,比如你可以在中断里延时个2S,等跳出中断后再观察主程序跑到哪儿了就一目了然了追问我的中断是点亮一个灯,主程序是数码管从0-F变化,但是我在执行中断的时候,即灯亮的时候(P3.2接GND),数码管仍然缓慢从0-F变化,但没有不执行中断的时候快。
不执行中断的时候,0.5秒变化一次;
执行中断的时候,差不多3秒变化一次,同时灯亮;追答如上所说,中断不是之程序断开在那里,而是程序放下之前的执行优先执行中断函数内的东西,所以你的程序的执行是这样的,主程序——》中断函数——》主程序。。。如此往复,在执行中断时,主程序实际上已经暂停执行了,但是你的中断函数太短,程序指针停留的时间也太短。你试试在中断程序中写入一个do{}while(1);的死循环,你就会发现在程序第一次进入中断体后就陷入死循环,无法结束中断函数,主程序也就不会继续运行了。这才是检验主程序在中断时是否执行的方法。
全部回答
单片机是单线程的,不可能同时运行。追问我的中断是点亮一个灯,主程序是数码管从0-F变化,但是我在执行中断的时候,即灯亮的时候(P3.2接GND),数码管仍然缓慢从0-F变化,但没有不执行中断的时候快。
不执行中断的时候,0.5秒变化一次;
执行中断的时候,差不多3秒变化一次,同时灯亮;追答你那个中断只是执行了一行代码:D1=0;
然后立即就又返回主程序了,在执行中断程序:D1=0;这一代码时,主程序是无法同时运行的。
比如你在D1=0;下面再添加一行延时等待程序。
void bright() interrupt 0
{
D1=0;
delay(100); //延时5秒钟
}
你再观察下,其中5秒的时间内,数码管还能变化吗?
你现在的情况是中断太频繁了,导致主程序运行变慢,所以数码管缓慢变化。
建议先了解一下中断的概念。它是处理异常事件时暂停正在运行的程序,跳转到一个特定地址去响应异常事件。随后继续执行原来的程序。详细概念到书上查查或网上搜一下追问我的中断是点亮一个灯,主程序是数码管从0-F变化,但是我在执行中断的时候,即灯亮的时候(P3.2接GND),数码管仍然缓慢从0-F变化,但没有不执行中断的时候快。
不执行中断的时候,0.5秒变化一次;
执行中断的时候,差不多3秒变化一次,同时灯亮;追答这应该是正常的,因为你选择的是电平中断,只要P3.2是低电平就会进入中断,当P3.2接地时程序就不断的进出中断,导致延时时间变长。将中断响应改为下降沿中断就不会了。
前面的朋友说的不对,为个程序的中断对主程序是有影响的。一次中断不会对主程序没什么影响,但一直进中断对主程序就有影响了。
把这条语句改一下即可:IT0=0;//选择电平触发方式
和前面的朋友说的一样。你的中断程序太短,执行时间很快,所以你感觉不到它的执行。
前面的说的都有各自的说明,我想说的是,你选择低电平触发,你怎么触发它?
手动?还是一直给它一个低电平?如果一直给它低电平的话,因为中断是随机的,我们不可能知道它什么时候会发生中断,又因为你的终端函数太短了,执行一次中断只需要一个机器周期,一直接地的话,随时都在发生中断,所以你原先设置的0.5s变一次,就变成了差不多3s变一次,其实你仔细观察它或许不是精确的几s变一次,由于中断的随机性,导致你的0.5s的时间也发生了随机性。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
上海磊蔚实业有限公司怎么样?
vivox3暴风播放为何屏幕很暗?
(一)我听见花开的声音丁立梅①1300多年前,
单选题在非洲人群中,每10000人中有1人患有囊
打算一个人去外地,打算去长沙或者福州,有没
魔兽世界巨蛋在哪打?
带有“天,地”两字的成语有哪些
B2和F117有什么区别?外形都是那种奇怪型的
吕后跟刘恒是什么关系?
我是一名学习播音主持的学生,但说话总带方言
移动两根火柴棍,使122+7=107
为了了解某县八年级学生的体重情况从中抽取了
大家是怎么喂奶,每次只让孩子吃一个还是两个
鲁工铲车928在白城市销售电话是多少
三星note5的play商店打不开怎么办
推荐资讯
找规律填题急需答案。一:3、8、5、5、14、9
男孩名字姓宋最高分
5个月宝宝长牙正常吗
怎样取好听的Q名
新居民居住证 与 暂住证 有区别吗
歌词:噢喔,我们的爱走到了尽头
学校选课一直进不去,就想着是不是电脑性能的
AI画板外的颜色怎么变成白色了?怎么改回去?
请问有这种长条形的东西卖吗?叫什么?
拼音码是什么
为什么我把CD光盘放入电脑后,总会出现很
中国邮政集团公司重庆市铜梁区分公司西门我想
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?