AttachInterrupt()

来自Microduino Wikipedia
Pppeng讨论 | 贡献2016年5月25日 (三) 02:05的版本 (创建页面,内容为“<pre style="color:green"> void attachInterrupt (uint8_t interruptNum, void(*)(void)userFunc, int mode) </pre> *'''设置中断''' <br> 指定中断函数. 外部...”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
void attachInterrupt (uint8_t interruptNum, void(*)(void)userFunc, int mode)
  • 设置中断

指定中断函数. 外部中断有0和1两种, 一般对应2号和3号数字引脚.


  • 引脚说明(interruptNum):

Uno/Nano/Mega上

中断0脚就是D2

中断1脚就是D3


  • 参数:

interrupt 中断类型, 0或1

fun 对应函数

mode 触发方式. 有以下几种:

--LOW 低电平触发中断

--CHANGE 变化时触发中断

--RISING 低电平变为高电平触发中断

--FALLING 高电平变为低电平触发中断


  • 注解:

在中断函数中 delay 函数不能使用, millis 始终返回进入中断前的值. 读串口数据的话, 可能会丢失. 中断函数中使用的变量需要定义为 volatile 类型.
下面的例子如果通过外部引脚触发中断函数, 然后控制LED的闪烁.

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;
}


[返回Arduino语法手册]