zoukankan      html  css  js  c++  java
  • ARDUINO 中断

    设置中断函数

     

    attachInterrupt()

    attachInterrupt(interrupt, function, mode) 
    描述: 
    当发生外部中断时,调用一个指定函数。当中断发生时,该函数会取代正在执行的程序。大多数的Arduino板有两个外部中断:0(数字引脚2)和1(数字引脚3)。 
    arduino Mege有四个外部中断:数字2(引脚21),3(20针),4(引脚19),5(引脚18)。 
    参数: 
    interrupt:中断引脚数 
    function:中断发生时调用的函数,此函数必须不带参数和不返回任何值。该函数有时被称为中断服务程序。 
    mode:定义何时发生中断以下四个contstants预定有效值:

    • LOW: 当引脚为低电平时,触发中断 
    • CHANGE: 当引脚电平发生改变时,触发中断 
    • RISING: 当引脚由低电平变为高电平时,触发中断 
    • FALLING: 当引脚由高电平变为低电平时,触发中断 

    返回值: 
    无 
    注意事项: 
    当中断函数发生时,delay()和millis()的数值将不会继续变化。当中断发生时,串口收到的数据可能会丢失。你应该声明一个变量来在未发生中断时储存变量。 
    使用中断: 
    在单片机自动化程序中当突发事件发生时,中断是非常有用的,它可以帮助解决时序问题。一个使用中断的任务可能会读一个旋转编码器,监视用户的输入。 
    如果你想以确保程序始终抓住一个旋转编码器的脉冲,从来不缺少一个脉冲,它将使写一个程序做任何事情都要非常棘手,因为该计划将需要不断轮询的传感器线编码器,为了赶上脉冲发生时。其他传感器也是如此,如试图读取一个声音传感器正试图赶上一按,或红外线槽传感器(照片灭弧室),试图抓住一个硬币下降。在所有这些情况下,使用一个中断可以释放的微控制器来完成其他一些工作。 

     
    int pin = 13;
    volatile int state = LOW;
     
    void setup()
    {
      pinMode(pin, OUTPUT);
      attachInterrupt(0, blink, CHANGE);
    }
     
    void loop()
    {
      digitalWrite(pin, state);
    }
     
    void blink()
    {
      state = !state;
    }
    

      

    detachInterrupt()

    detachInterrupt(interrupt) 
    描述: 
    关闭给定的中断。 
    参数: 
    interrupt: 中断禁用的数(0或者1)。

  • 相关阅读:
    生命
    历史的分岔-中日产业发展史的对照和思考
    挑战自已
    丰台往事已成风,上下求索永不停
    VC6.0实现鼠标光标形状及大小的定制
    RelativeLayout
    16进制颜色代码
    html里的option错误
    Android用户界面设计:布局基础
    Activity详细介绍【官网】
  • 原文地址:https://www.cnblogs.com/kekeoutlook/p/8207153.html
Copyright © 2011-2022 走看看