#include <Arduino.h>
#define EXT_ISR_MODE 0 //定义一个全局变量 控制中断进程
void TouchEvent() //触摸事件
{
Serial.printf("Touch Event.\r\n"); //写入字符串数据到串口
}
void PinIntEvent() //下降沿触发
{
Serial.printf("PinInt Event.\r\n");
}
void setup() //初始化函数 复位后只运行一次
{
// put your setup code here, to run once:
Serial.begin(115200); //开启串行通信接口并设置波特率
#if 1 == EXT_ISR_MODE //如果 中断1
touchAttachInterrupt(T0,TouchEvent,40); //ISR(中断服务程序) 中断引脚号、中断服务程序名、阈值(低于最大值触发中断)
#elif 2 == EXT_ISR_MODE //中断2
pinMode(0,INPUT_PULLUP); //引脚配置函数 输出模式、输入模式、输入上拉模式
attachInterrupt(0,PinIntEvent,FALLING);//中断引脚号、中断服务程序名、中断方式
#endif //结束如果
}
void loop() //循环函数 死循环
{
// put your main code here, to run repeatedly:
#if 0 == EXT_ISR_MODE //中断0
Serial.printf("touch:%d\r\n",touchRead(T0)); //读取当前引脚值
#endif
delay(200); //延时函数0.2s
}
注意 定义的新的函数要写在setup 函数前面