查看: 755|回复: 0

【 LinkIt ONE 】2、中断 LED

[复制链接]
  • TA的每日心情
    慵懒
    2016-10-17 12:07
  • 签到天数: 306 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2016-5-23 10:07:55 | 显示全部楼层 |阅读模式
    分享到:

    如上图所示,LinkIt ONE的 D1 和 D3 两个引脚具有外部中断功能。
    中断,是指CPU在正常运行程序时,由于内部/外部事件或由程序预先安排的事件,引起CPU中断正在运行的程序,而转到为内部/外部事件或为预先安排的事件服务的程序中去,服务完毕,再返回去执行波暂时中断的程序  由于某个事件的发生,CPU暂停当前正在执行的程序,转而执行处理该事件的一个程序。该程序执行完成后,CPU接着执行被暂停的程序。这个过程称为中断。
    根据中断源的位置,有两种类型的中断。有的中断源在CPU的内部,称为内部中断。
    大多数的中断源在CPU的外部,称为外部中断。 根据中断引脚的不同,或者CPU响应中断的不同条件,也可以把中断划分为可屏蔽中断和不可屏蔽中断两种。  
    LinkIt ONE 关于中断函数有四个:
    void attachInterrupt( uint32_t pin, callback_ptr callback, uint32_t mode );void detachInterrupt( uint32_t pin );void noInterrupts();void interrupts();
    其中 ,void noInterrupts();   void interrupts(); 是用来开关中断的,让代码进入临界区域:
      noInterrupts();  //临界区域  interrupts();void attachInterrupt( uint32_t pin, callback_ptr callback, uint32_t mode );uint32_t pin   只能为 0 和 1 , 对应 D2 和 D3 引脚。
    callback_ptr callback   关连的是call back 函数
    uint32_t mode  对应的中断触发类型
    MODE    LOW to trigger the interrupt whenever the pin is low,    CHANGE to trigger the interrupt whenever the pin changes value     RISING to trigger when the pin goes from low to high  FALLING for when the pin goes from high to low例程如下:
    const byte ledPin = 13;volatile byte state = LOW;void setup() {  pinMode(ledPin, OUTPUT);  pinMode(interruptPin, INPUT_PULLUP);  attachInterrupt(0, blink, CHANGE);}void loop() {  // put your main code here, to run repeatedly:  digitalWrite(ledPin, state);}void blink() {  state = !state;}运行如上的程序,即可以看到 LinkIt ONE 的 D13 对应的LED 随着 D2 的状态 变化而变化的。
    LinkIt ONE 对 arduino 的移植和兼容也还不错,当然没有 官方的Atmel 的那么彻底。比如  digitalPinToInterrupt(interruptPin) 这个函数在程序中就没有,不过EINT 0 和 1 都可以了。功能已经够用了。。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 19:45 , Processed in 0.115051 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.