Mikrokontrollerek Arduino környezetben (programozás, építés, tippek) - Egyéb hardverek fórum

üzenetek

hozzászólások


Aryes
(nagyúr)

Így:

volatile long encoder0Pos=0;
volatile long previousMillis0 = 0;
volatile int currentPos = 0;
volatile int previousPos0 = 0;
volatile long currentMillis = 0;

attachInterrupt(0, doEncoder0, CHANGE );

void doEncoder0()
{
currentMillis = millis();
currentPos=digitalRead(encoder0Pin);
if (currentMillis - previousMillis0 >= interval) {
if (currentPos != previousPos0) {
previousPos0=currentPos;
previousMillis0 = currentMillis;
encoder0Pos++;
}
}
}

üzenetek