单片机C语言编程问题:延时函数运行中能否响应中断?

单片机C语言编程问题:延时函数运行中能否响应中断?,第1张

所谓中断,就是可以打断正常运行的程序,这个程序也可以是正在运行的延时程序,除非程序中主动禁止

定时器中断

,总会到时响应中断,即打断正在运行的程序,去调用

中断服务程序

,结束中断服务程序后,再在断点

恢复现场

继续运行,就好像没有调用过中断服务程序一样。由于中断服务程序打断了delay,因此delay程序实际上延时是原先没有中断程序时多延时

一点时间

(因为延时期间被中断插入执行了若干次服务程序,增加了

运行时间

)

1、中断:指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。

2、中断服务程序:处理器处理"急件",可理解为是一种服务,是通过执行事先编好的某个特定的程序来完成的,这种处理"急件"的程序被称为--中断服务程序。

3、中断是处理器一种工作状态的描述。我们把引起中断的原因,或者能够发出中断请求信号的来源统称为中断源。

1、中断的处理过程为:关中断(在此中断处理完成前,不处理其它中断)、保护现场、执行中断服务程序、恢复现场、开中断。

2、通常中断源有以下几种:

(1)外部设备请求中断。

(2)故障强迫中断。

(3)实时时钟请求中断。

(4)数据通道中断。

(5)程序自愿中断。

3、中断系统的功能中断系统应具有的功能可归结为中断处理和中断控制。

(1)中断处理。中断处理包括发现中断请求、响应中断请求、中断处理和中断返回。

(2)中断控制。中断控制主要是实现中断优先级的排队和中断嵌套。

4、防止方法

(1)声卡:一些早期的ISA型声卡,系统很有可能不认,就需要用户手动设置(一般为5)

(2)内置调制解调器和鼠标:一般鼠标用COM1,内置调制解调器使用COM2的中断(一般为3),这时要注意此时COM2上不应有其它设备

(3)网卡和鼠标:此问题一般发生在鼠标在COM1口,使用中断为3,这时要注意通常网卡的默认中断为3,两者极有可能发成冲突。

(4)打印机和EPP扫描仪:在安装扫描仪驱动程序时应将打印机打开,因为两个设备中串联,所以为了防止以后扫描仪驱动程序设置有误,一定要将打印机打开再安装扫描仪驱动程序。

(5) *** 作系统和BIOS:如果计算机使用了"即插即用" *** 作系统(例如win98),应将BIOS中PNP OS Installed设置为Yes这样可让 *** 作系统重新设置中断。

(6)PS/2鼠标和BIOS:在使用PS/2鼠标时应将BIOS中PS/2 Mouse Function Control打开或设置为Auto,只有这样BIOS才能将IRQ12分配给PS/2鼠标用。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12108211.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存