查看: 197|回复: 0

[技术] 【赚周年币】技术帖——Fireduino学习4、Interrupts

[复制链接]

46

主题

3

好友

3619

积分

状元

Rank: 6Rank: 6

  • TA的每日心情
    擦汗
    3 天前
  • 签到天数: 342 天

    [LV.8]以坛为家I

    发表于 2016-12-29 23:35:00 |显示全部楼层
    Interrupts()
    说明
       重新启用中断(使用noInterrupts()命令后将被禁用)。
       中断允许一些重要任务在后台运行,默认状态是启用的。
       禁用中断后一些函数可能无法工作,并传入信息可能会被忽略。
       中断会稍微打乱代码的时间,但是在关键部分可以禁用中断。
    语法   Interrupts()
    参数介绍   无
    返回值   无

    noInterrupts()
    说明
       禁止中断(重新使能中断interrupts())。
       中断允许在后台运行一些重要任务,默认使能中断。
       禁止中断时部分函数会无法工作,通信中接收到的信息也可能会丢失。
       中断会稍影响计时代码,在某些特定的代码中也会失效。
    语法   noInterrupts()
    参数   无
    返回值   无

    attachInterrupt()
    说明
       当发生外部中断时,调用一个指定函数。
       当中断发生时,该函数会取代正在执行的程序。
       Fireduino任何一个数字引脚都可以产生外部中断。
       在单片机自动化程序中当突发事件发生时,中断是非常有用的,它可以帮助解决时序问题。
       一个使用中断的任务可能会读一个旋转编码器,监视用户的输入。
       如果你想以确保程序始终抓住一个旋转编码器的脉冲,从来不缺少一个脉冲,它将使写一个程序做任何事情都要非常棘手,   因为该计划将需要不断轮询的传感器线编码器,为了赶上脉冲发生时。
       其他传感器也是如此,如试图读取一个声音传感器正试图赶上一按,或红外线槽传感器(照片灭弧室),试图抓住一个硬币下降。
       在所有这些情况下,使用一个中断可以释放的微控制器来完成其他一些工作。
    语法
       attachInterrupt(pin, function, mode)
    参数
       pin:开启外部中断的数字引脚。
        function:中断发生时调用的函数,此函数必须不带参数和不返回任何值。该函数有时被称为中断服务程序。
        mode:定义何时发生中断以下四个contstants预定有效值:
             LOW 当引脚为低电平时,触发中断
             HIGH 当引脚为电平时,触发中断
             RISING 当引脚由低电平变为高电平时,触发中断
             FALLING 当引脚由高电平变为低电平时,触发中断.
    返回值   无
    注意事项
       当中断函数发生时,delay()和millis()的数值将不会继续变化。
       当中断发生时,串口收到的数据可能会丢失。
       你应该声明一个变量来在未发生中断时储存变量。

    示例程序
    1. int ledPin = 13;
    2. int pin0 = 0;
    3. volatile int state = LOW;

    4. void setup() {
    5.   // put your setup code here, to run once:
    6.   pinMode(ledPin,OUTPUT);
    7.   attachInterrupt(pin0,blink,RISING);
    8. }

    9. void loop() {
    10.   // put your main code here, to run repeatedly:
    11.   digitalWrite(ledPin,state);
    12. }

    13. void blink()
    14. {
    15.   state = !state;
    16. }
    复制代码
    detachInterrupt()
    说明
       关闭给定的中断。
    语法
       detachInterrupt(interrupt)
    参数
       interrupt:关闭外部中断的数字引脚。
    返回值   无
    已有 1 人评分 收起 理由
    loveeeboard + 20

    总评分:  + 20   查看全部评分

    喜欢在构思妙想,电子产品DIY是工作,也是一种爱好。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /3 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-4-29 07:38 , Processed in 0.099669 second(s), 10 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部