Skocz do zawartości

Brak mozliwosci ustawienia przerwania attachInterrupt()


Pomocna odpowiedź

Napisano (edytowany)

  
This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.
Arduino: 1.0.6 (Windows 7), Board: "Arduino Uno"
piec_encoder.ino: In function 'void setup()':
piec_encoder:20: error: 'NOT_AN_INTERRUPT' was not declared in this scope
  
  O co chodzi?

Witam.
  Próbuję zastosować przerwanie za pomocą       " attachInterrupt(digitalPinToInterrupt(PinA),zmiana,LOW); 
  i otrzymuję komunikat o błędzie.

Edytowano przez Gieneq
 /* Read Quadrature Encoder
   Connect Encoder to Pins encoder0PinA, encoder0PinB, and +5V.
 */
#define PinA 2  
#define PinB 3 
byte encoder0PinA =2;//7 (0)
byte encoder0PinB = 3;//8
word encoder0Pos = 0x00FF;

byte encoder0PinALast = LOW;
byte n = LOW;
byte tranzH = 7;
byte tranzL = 8;
volatile word encoder = 0x00FF;
void setup() {
  pinMode (encoder0PinA, INPUT_PULLUP);
  pinMode (encoder0PinB, INPUT_PULLUP);
  pinMode (tranzH, OUTPUT);
  pinMode (tranzL, OUTPUT);
  attachInterrupt(digitalPinToInterrupt(PinA),zmiana,LOW);

  digitalWrite(tranzH, HIGH);
  digitalWrite(tranzL, LOW);
   Serial.begin(9600);
}

void loop() {
  for ( encoder = encoder0Pos; encoder > 0; encoder--){
     digitalWrite(tranzH, LOW);  
     digitalWrite(tranzL, HIGH);
  }
   for ( encoder = encoder0Pos; encoder > 0; encoder--){
     digitalWrite(tranzH, HIGH);
     digitalWrite(tranzL, LOW);
   }
      Serial.println(encoder0Pos);  
}

void zmiana(){
  n = digitalRead(encoder0PinA);
  if ((encoder0PinALast == LOW) && (n == HIGH)) {
    if (digitalRead(encoder0PinB) == LOW) {
      encoder0Pos--;
      if (encoder0Pos = 0){
        encoder0Pos = 0;
      }
    } else {
      encoder0Pos++;
      if (encoder0Pos = 0xFFFF) {
        encoder0Pos = 0xFFFF;
      }
    }
 
  }
  encoder0PinALast = n;
  encoder0PinALast = encoder;
} 

 

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...