|
|
如何在中断程序中实现延时功能呢?
像delay()等延时函数在中断程序中是不可用的。
我想实现一个点灯的延时程序,通过中断pin 2去控制pin 13点灯,当按下pin 2时灯亮一秒,然后灭掉。
pin 2被上拉,当按下按钮时,pin 2直接接地。
程序如下:无法实现我需要的功能- int pin = 13;
- void setup()
- {
- pinMode(pin,OUTPUT);
- attachInterrupt(0,blink,FALLING);
- }
- void loop()
- {
- digitalWrite(pin,LOW);
- }
- void blink()
- {
- unsigned long time,time1;
- time=millis();
- for(time1=time;(time1-time)<100;time1=millis())
- {
- digitalWrite(pin,HIGH);
- }
- digitalWrite(pin,LOW);
- }
复制代码 |
|