美文网首页Arduino 专题学习
项目十四任务十七定时器中断

项目十四任务十七定时器中断

作者: 0204_何晓晴 | 来源:发表于2019-06-29 17:09 被阅读11次

一、中断的概念、分类及其用途

1.中断的概念

CPU执行时原本是按程序指令一条一条向下顺序执行的。 但如果此时发生了某一事件B请求CPU迅速去处理(中断发生),CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务).  待CPU将事件B处理完毕后, 再回到原来被中断的地方继续执行程序(中断返回),这一过程称为中断 。

(比如说你原本在做arduino,中间教学设计小组要开会,你放下手中定时器中断的PPT去开会,开完会回来再接着原来做的PPT继续做)

任务十七

2.中断的分类

中断可以被分为内部中断和外部中断,内部中断的来源来自CPU内部(软件中断指令,溢出,除法错误等,例如操作系统从用户态切换到内核态需借助CPU内部的软件中断),外部中断的中断源来自CPU外部,由外设提出请求。

3.中断的用途

      ①提高计算机系统效率。计算机系统中处理机的工作速度远高于外围设备的工作速度。通过中断可以协调它们之间的工作。当外围设备需要与处理机交换信息时,由外围设备向处理机发出中断请求,处理机及时响应并作相应处理。不交换信息时,处理机和外围设备处于各自独立的并行工作状态。
      ②维持系统可靠正常工作。现代计算机中,程序员不能直接干预和操纵机器,必须通过中断系统向操作系统发出请求,由操作系统来实现人为干预。主存储器中往往有多道程序和各自的存储空间。在程序运行过程中,如出现越界访问,有可能引起程序混乱或相互破坏信息。为避免这类事件的发生,由存储管理部件进行监测,一旦发生越界访问,向处理机发出中断请求,处理机立即采取保护措施。
      ③满足实时处理要求,在实时系统中,各种监测和控制装置随机地向处理机发出中断请求,处理机随时响应并进行处理。
      ④提供故障现场处理手段。处理机中设有各种故障检测和错误诊断的部件,一旦发现故障或错误,立即发出中断请求,进行故障现场记录和隔离,为进一步处理提供必要的依据。

二、Arduino的定时器中断

1.定时器中断

定时器中断是由单片机中的定时器溢出而申请的中断。51单片机中有两个定时器T0和T1。

任务十七

2. Arduino 定时器中断的基本使用方法与注意事项

(1)定时器中断代码如下

任务十七

(2)定时器中断运行结果

任务十七

注意事项

如果编译过程出现错误“error: 'MsTimer2' has not been declared”,多半是因为MsTimers库未安装。

3.Arduino 定时器中断函数库 MsTimer2的安装与使用 进入https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2FPaulStoffregen%2FMsTimer2网址 (1) 新建一个目录名为 MsTimer2,  在 https://github.com/PaulStoffregen/MsTimer2 下载全部文件, 存入目录中。

任务十七

(2)将MsTimer2导入库

任务十七

三.外部中断

1.实验目标:外接一个按键一个LED灯,按下按键后,随机等待10-20秒,LED灯熄灭,当按键者看到LED熄灭时,立即松手让按键弹起

2.实验连线图

任务十七

3.代码

任务十七

还有另一种简单的函数实现上述功能

随机产生10到20的数字,用函数random()

描述:生成伪随机数。

函数原型:

random(max)

random(min,max)

参数:

min: 随机数区间下限值,且包括在内。此参数可选,省略则从0开始。

max: 随机数区间上限值,且不包括在内。

返回值:min和max-1之间的随机数。

四.按键实现外部中断

1.实现目标:按键按下,串口显示器显示“KEY DOWM”;按键松开,串口显示器显示“KEY UP”

2.实验连线图

实验十七

3.代码及结果

任务十七 任务十七

attachInterrupt函数用于设置外部中断,函数有3个参数:interrupt、function和mode,分别表示中断源、中断处理函数、触发模式。参数中断源可选值0或1,在Arduino中一般对应2号和3号数字引脚;参数中断处理函数用来指定中断的处理函数,参数值为函数的指针,触发模式有4种类型:LOW(低电平触发)、CHANGE(变化时触发)、RISING(低电平变为高电平触发)、FALLING(高电平变为低电平触发)。

相关文章

  • 项目十四任务十七定时器中断

    一、中断的概念、分类及其用途 1.中断的概念 CPU执行时原本是按程序指令一条一条向下顺序执行的。 但如果此时发生...

  • 【项目14—任务17—小组5】定时器中断

    一、中断的概念、分类及其用途 1.中断的概念 CPU执行时原本是按程序指令一条一条向下顺序执行的。 但如果...

  • Linux C/C++定时器的实现原理和使用方法

    定时器的实现原理 定时器的实现依赖的是CPU时钟中断,时钟中断的精度就决定定时器精度的极限。一个时钟中断源如何实现...

  • 模块化编程心得体会

    整体思路这样的: 定时器中断中调用一个列表任务使能位循环刷新, 刷新原则是,在创建任务列表的时候,每一个任务...

  • 定时器

    定时器 :Timer和TimerTask 定时器例子定时器原理做项目很多时候会用到定时任务,比如在深夜,流量较小的...

  • 2017.12.21学习总结

    下午学习了定时器,定时器分为高级定时器、通用定时器和基本定时器,我们主要研究通用定时器。 定时器中断实现步骤:...

  • 多路舵机控制,定时器的分时复用

    多路舵机控制,多个定时器中断法

  • 第11章 定时器和时间管理

    系统定时器是一种可编程硬件芯片,能以固定频率产生中断,也就是定时器中断,其对应的中断处理程序负责更新系统时间,也负...

  • 给8051提供时间

    时间是利用定时器0中断的解决,我们设置定时器0,每个 1 毫秒中断一次,用一个变量,每次中断的时候增加 1,这样子...

  • 4.4每日站报

    DONE STM32定时器中断部分的学习 学习数电译码器部分 写了关于定时器中断的学习笔记 TODO 完成STM3...

网友评论

    本文标题:项目十四任务十七定时器中断

    本文链接:https://www.haomeiwen.com/subject/cdbpcctx.html