一、方式不同:
程序查询方式是主机与外设间进行信息交换的最简单方式。输入输出完全通过CPU执行程序来完成。而程序中断方式无需等待查询,外设在做好输入输出准备时,向主机发中断请求,主机接到请求后就暂时中止原来执行的程序,转去执行中断服务程序对外部请求进行处理。
二、含义不同:
中断程序在程序开始定义中断入口地址,初始化中必须打开中断允许位,程序运行时不用判断溢出状态位,溢出后硬件清零;查询方式在程序运行时必须判断溢出状态位,溢出后须软件清零。
程序查询方式
一旦某一外设被选中并启动后,主机将查询这个外设的某些状态位,看其是否准备就绪,若外设未准备就绪,主机将再次查询;若外设已准备就绪,则执行一次I/O *** 作。
这种方式控制简单,但外设和主机不能同时工作,各外设之间也不能同时工作,系统效率很低,因此,仅适用于外设的数目不多,对I/O处理的实时要求不那么高,CPU的 *** 作任务比较单一,并不很忙的情况。
以上内容参考:百度百科-程序查询方式
尽管需要具体问题具体分析,还是有一些基本的规律的:中断通常用于高优先级,高响应性,低频度业务,串口的接收就是一个典型轮询通常用于低优先级,低响应性,高频度大数据量业务,键盘扫描是一个典型但是这不是绝对的,通常情况是中断与轮询相配合,例如定时功能,在定时器中断里设置标志位,程序主任务里轮询该标志位,做具体 *** 作。键盘扫描也通常是外部中断记录按下了哪个键,轮询在做进一步的扫描处理(例如去抖功能)。对于一楼的补充,轮询可能根本不需要 *** 作中断,故而不一定要置位/清零标志位对于二楼的补充,不是所有的中断都需要外部管脚作为触发源,例如UART,USB都是如此欢迎分享,转载请注明来源:内存溢出
评论列表(0条)