问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

中断服务程序完成后怎样跳到main函数指定位置

发布网友 发布时间:2022-10-05 08:20

我来回答

3个回答

热心网友 时间:2023-10-18 01:32

理论上来说,中断完成后,程序指针回到断点,继续往下执行
但如果你要转到指定地点执行的话,我提供个方法,如下
你可以在中断中设置一个全局变量,如果中断后,改变这个全局变量,在程序的关键部位检测这个变量是否改变,如果改变了执行“goto +标签;”的跳转指令,就可以让程序到指定位置
但该方式不能中断立即跳转到指定位置,但是因为单片机的运算速度实在太快了,知道你在关键部位写如个检测程序,如if(k==1)goto L1;//中断改变全局变量k=1,如果改变了k,那跳转到指定地址L1
这样的方式,只要你在程序关键部位设置合理,是完全能满足设计要求的追问我用的是AVR-mega16单片机,C语言编写,GCC编译。
问题就是出在“该方式不能中断立即跳转到指定位置”。C语言真的做不到么?

追答因为你不知道程序在执行到什么地方的时候,被中断,而中断结束后,程序自动恢复到断电处,顾要立即做出反映,那是不可能的,但介于单片机高速运算,一般你设置一个检测点,不管检测点在程序什么位置,只要能执行到,那响应时间不会超过1ms
C可以做到,我说过了,可以在中断中设置一个全局变量,如果中断后,改变这个全局变量,在程序的关键部位检测这个变量是否改变,如果改变了执行“goto +标签;”的跳转指令,就可以让程序到指定位置
记住,这样的程序你需要在个关键部位检测全局变量,格式如下
if(k==1)goto L1;
else k=0;

热心网友 时间:2023-10-18 01:33

对于单片机的硬件,你熟悉吗?时钟和CPU是独立的,时钟中断程序时这样的:在CPU执行指令时,计数器(计时器)同时在计时,当计时器溢出时,就向CPU申请中断,如果允许响应中断,CPU就转到中断服务程序执行相关的程序。
单片机的时钟中断相应要满足两个条件:第一,允许中断源申请中断。第二,允许cpu响应中断。二者缺一不可。 EA=1;//开总中断
ET0=1;//开定时器0中断
ET1=1;
TR0=1;//启动定时器0
TR1=1;
你这些语句,就允许了中断响应,所以,当你的程序跑起来时,时钟时间到了,CPU就转入中断服务程序了,执行完了再返回主程序。你可以在编译器中用DEBUG查看执行过程的。如果你用汇编语言写,就更清楚了,可以看清每一步的操作的。
硬件部分是这样:在每个机器周期的S5P2,单片机会来采样,判断是否有中断申请。所以一旦时钟计数溢出,就会转入中断服务程序。
这个打个比方吧,你在上课,相当于主程序,这时时间到了,打铃下课了,你就不读书了,跑出去玩了。这其实是一样的道理。你在上课,这和打铃不相关,并不是你让打铃的,学校的时钟在不停地走,到了时间自动打铃,这不受你上课的影响的。但是如果你把耳朵堵上了(不允许响应中断),就是把铃打碎了你也不知道下课了,所以你就一直读书。不知你明白没?

热心网友 时间:2023-10-18 01:33

如果你这么问说明你对C的结构就不清楚。
你这个goto的越多,你的结构性越差。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 嵌入式时钟节拍数在哪一个中断服务程序函数被引用 信用卡额度一万掌上取现1000在去柜台取现5000能不能分期还 我六月份用信用卡提现1000元,掌上生活客户端现在显示在未出账单里,请问怎样用客户端提前还款? 那假如说我这个月10号掌上取现了1000那我是不是下个月10号就要准时还款1000加上利息呢? 试画图分析,家用电器的金属外壳为什么一定要接地? 广东蒸鸡爪怎么做 广东蒸鸡爪的做法 蒸凤爪子怎么做 蒸鸡爪的做法 马自达是如何赢得“东瀛宝马”称号的? 写我喜欢的卡通人物作文5篇 四年级卡通人物作文 卡通人物作文 家庭电路的金属外壳为什么一定要接地? 你知道为什么马自达被称为东瀛宝马吗? 孔雀竹竿怎么养? 凉拌大蒜须要怎么做? 芥末墩儿的制作方法 一蜜汁红薯 一蜜汁红薯做法 想问石榴不能和西红柿一起吃吗 石榴和西红柿一起吃会怎么样 石榴和西红柿一起吃会如何 碰碰香放在室内能驱蚊吗? vxworks系统时钟中断死掉,急急急! 做法,正宗酸奶冰激凌怎么做 tgp饥荒服务器能不能建在代理服务器上 你觉得谁是东瀛宝马? 酸奶冰激凌怎么做 酸奶冰激凌的做法 五十步笑百步的故事和含义简短 五十步笑百步的故事和含义是什么 为什么马自达被称为东瀛宝马?孟凡利 五十步笑百步寓言故事 微信账号如何激活 简单7步即可激活 长期不用的怎么激活 长期没登录怎么激活不了? 长期未用的怎样激活 里面没有好友怎么才能把激活 新春菜(财)之四季发财怎么做好吃 四季发财羹的做法,四季发财羹怎么做好吃,四季 衙斋怎么读? 潍县署中画竹呈年伯包大中丞括怎么读 黄灯时汽车是否能通行 市委办公室的系统创先争优活动总结及下步计划 县创先争优活动八月份工作计划方案