Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <digitalWriteFast.h> // library for high performance reads and writes by jrraines
- #define c_LeftEncoderInterrupt 0
- #define c_LeftEncoderPinA 2
- #define c_LeftEncoderPinB 3
- volatile bool _LeftEncoderBSet;
- volatile long _LeftEncoderTicks = 0;
- void setup()
- {
- Serial.begin(115200);
- pinMode(c_LeftEncoderPinA, INPUT);
- digitalWrite(c_LeftEncoderPinA, LOW);
- pinMode(c_LeftEncoderPinB, INPUT);
- digitalWrite(c_LeftEncoderPinB, LOW);
- attachInterrupt(c_LeftEncoderInterrupt, HandleLeftMotorInterruptA, RISING);
- }
- // Interrupt service routines for the left motor's quadrature encoder
- void HandleLeftMotorInterruptA()
- {
- _LeftEncoderBSet = digitalReadFast2(c_LeftEncoderPinB); // read the input pin
- _LeftEncoderTicks -= _LeftEncoderBSet ? -1 : +1;
- }
- void loop()
- {
- Serial.print(_LeftEncoderTicks);
- Serial.print("\n");
- delay(20);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement