轮询 和 中断 的比较

我们首先区别一下中断和轮询

中断和轮询是  嵌入式 的两个基本的编程的思想和 概念



轮询:

while(1){
   
     if(按键按下){
                                                 
                 执行程序;
              }
 }

/*

周期连续 的检测外部事件的发生
消耗大量cpu的处理时间
轮询过程需要和其他代码结合
由于cpu可能需要处理其他事件(可能是无关紧要的),可能丢失关键事件
*/

轮询的坏处


周期连续 的检测外部事件的发生
消耗大量cpu的处理时间
轮询过程需要和其他代码结合
由于cpu可能需要处理其他事件(可能是无关紧要的),可能丢失关键事件

 

中断

Interrupt();//中断函数

while(1){
     
     //死循环代码
}

/*

由一种类似于硬件的,电路的机制来判断是否发生外部事件并通知Cpu
专用的中断服务程序来处理事件

*/

中断流程图

中断是一个需要cpu 立刻执行的内部/外部事件

内部事件;定时器定时时间到

               AD变换结束

外部按键:按键动作

                 发生外部通信

中断发生时,将主函数所用到的寄存器自动压入堆栈

中断执行完成之后

寄存器器出栈

 

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值