中断函数不用进行函数声明,可以写在MAIN函数前面也可以写在MAIN函数后面。
一、中断服务程序,处理器处理“急件”,可理解为是一种服务,是通过执行事先编好的某个特定的程序来完成的,这种处理“急件”的程序被称为——中断服务程序。
二、当中央处理器正在处理内部数据时,外界发生了紧急情况,要求CPU暂停当前的工作转去处理这个紧急事件。处理完毕后,再回到原来被中断的地址,继续原来的工作,这样的过程称为中断。
三、实现这一功能的部件称为中断系统,申请CPU中断的请求源称为中断源,单片机的中断系统一般允许多个中断源,当多个中断源同时向CPU请求中断时,就存在一个中断优先权的问题。通常根据中断源的优先级别,优先处理最紧急事件的中断请求源,即最先响应级别最高的中断请求。
四、保护被中断进程现场。为了在中断处理结束后能够使进程准确地返回到中断点,系统必须保存当前处理机程序状态字PSW和程序计数器PC等的值。
五、分析中断原因,转去执行相应的中断处理程序。在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。恢复被中断进程的现场,CPU继续执行原来被中断的进程。
中断服务程序,处理器处理“急件”,可理解为是一种服务,是通过执行事先编好的某个特定的程序来完成的,这种处理“急件”的程序被称为—中断服务程序.
中断处理过程:
(1)保护被中断进程现场.为了在中断处理结束后能够使进程准确地返回到中断点,系统必须保存当前处理机程序状态字PSW和程序计数器PC等的值.
(2)分析中断原因,转去执行相应的中断处理程序.在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求.
(3)恢复被中断进程的现场,CPU继续执行原来被中断的进程.
INT后面是中断处理程序,相当于一个双层循环,r7相当于内层循环变量,r6相当于外层循环变量.
首先,r7减一后若不为零就跳转到finish处退出中断,若为零则说明已经完成一个200次的内循环,则将r7恢复成200再看r6,若减一不为零就跳回here处继续一轮内循环,若为零则说明已经完成一个50次的外循环,即已经中断了10000次,则恢复r6为50,迎接下一个10000次中断,并对p1.0状态取反.
步骤如下:1、使能EFALSH:在开始 *** 作eflash之前,需要先打开eflash使能标志。
2、配置接收中断:使用相关的寄存器或配置文件,设置系统接收中断的相关参数,包括中断类型、优先级、触发方式等。
3、中断服务程序编写:编写相应的中断服务程序,以响应接收中断事件。中断服务程序的功能包括保存接收到的数据、判断eflash状态和容量等,并根据实际情况执行写入或者其他 *** 作。
4、数据写入eflash:在判断eflash状态和容量合适的情况下,将接收到的数据按照指定格式写入eflash。
5、关闭eflash使能标志:在eflash *** 作完成后,需要关闭eflash使能标志,以便后续的 *** 作能够正常进行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)