zoukankan      html  css  js  c++  java
  • Arduino 外部中断

    第一篇Arduino的日志啧啧。

    中断的概念。

    中断装置和中断处理程序统称为中断系统

    我们从一个生活中的例子引入。你正在家中看书,突然电话铃响了,你放下书本,去接电话,和来电话的人交谈,然后放下电话,回来继续看你的书。这就是生活中的“中断”的现象,就是正常的工作过程被外部的事件打断了。

    在Arduino库中定义,UNO有两个中断,MEGA2560有六个中断。具体如下表,来自 http://arduino.cc/en/Reference/AttachInterrupt

    image

    DUE普及率非常一般,暂不涉及。

    语法。

    attachInterrupt(interrupt, function, mode)

    变量使用。

    1)interrupt:中断号,UNO只能使用 0或1 ,即代表D2 与D3口。

    2)function:调用中断函数,中断发生时调用的函数。

    3)mode:中断触发模式。

    UNO R3 支持四种中断触发模式:

    LOW 当针脚输入为低时,触发中断
    CHANGE 当针脚输入发生改变时,触发中断
    RISING 当针脚输入由低变高时,触发中断
    FALLING 当针脚输入由高变低时,触发中断

    中断函数不返回任何值。

    中断函数的使用方法:

    首先给出一段来自官方的例程:

    int pin = 13;          //首先我们需要找一个灯来观察
    volatile int state = LOW;    //设置灯状态
    
    void setup()
    {
      pinMode(pin, OUTPUT);
      attachInterrupt(0, blink, CHANGE);    //设置触发,中断号0,即数字2口
    }
    
    void loop()
    {
      digitalWrite(pin, state);        //对观察灯写入状态值
    }
    
    void blink()            //触发函数
    {
      state = !state;            //将状态变量求反
    }

    我们从中可以看出,使用中断函数时,不需要定义针脚状态,直接使用中断函数即可。

    当我们需要取消中断时,我们有下面的命令。

    detachInterrupt(interrupt)

    interrupt 是中断号。执行此语句后,系统不会对中断有反应,即上例中,系统不会再对灯状态进行改变。

  • 相关阅读:
    VUE网页loading加载状态
    VUE使用canvas画板实现签字
    一个完整的项目管理流程
    APP原型的设计步骤是什么?
    如何对接网建SMS短信通短信验证码接口
    如何彻底红蜘蛛,非常方便!!!
    如何在cmd中连接数据库
    mvn deploy:deploy-file命令
    Java线程池的分析和使用
    jstat命令详解
  • 原文地址:https://www.cnblogs.com/Kaysin/p/2902197.html
Copyright © 2011-2022 走看看