求助attiny85中断触发条件写法-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 351|回复: 0

[未解决] 求助attiny85中断触发条件写法

[复制链接]
发表于 2022-4-23 12:44 | 显示全部楼层 |阅读模式
试过用自带的attachInterrupt函数,也编译,但是有点奇怪,用信号去接触它不会触发,我手还没有碰到,它却能触发,像抗干扰不好,能隔空感应。


下面是百度的代码,感觉中断代码像是原生的C语言那种,看不懂,好在能用,但是只有在低电平才触发,相当于FALLING,我想要不管是从高到低,还是从低到高,只要发生了变化都触发,也就是CHANGE模式,请问该如何写。感谢

  1. #include "Arduino.h"

  2. const byte interruptPin = 0;
  3. const byte ledpin = 1;
  4. bool lastState = HIGH;
  5. unsigned long lastMillis = 0;
  6. unsigned long currentMillis = 0;

  7. ISR (PCINT0_vect) // this is the Interrupt Service Routine
  8. {
  9.   currentMillis = millis();
  10.   if (currentMillis - lastMillis > 500){
  11.     lastMillis = currentMillis;
  12.     lastState = !lastState;
  13.     digitalWrite(ledpin,lastState);
  14.   }  
  15. }

  16. void setup() {
  17.   pinMode(interruptPin, INPUT_PULLUP);
  18.   pinMode(ledpin, OUTPUT);
  19.   digitalWrite(ledpin,lastState);

  20.   // interrupts
  21.   PCMSK  |= bit (interruptPin);  // want pin
  22.   GIFR   |= bit (PCIF);    // clear any outstanding interrupts
  23.   GIMSK  |= bit (PCIE);    // enable pin change interrupts
  24. }

  25. void loop() {

  26. }
复制代码





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

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:23 , Processed in 0.104680 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表