Fork of mRotaryEncoder for mdeb-os. uses newer version of PinDetect. Testprogram: https://os.mbed.com/users/charly/code/mRotaryEncoder_HelloWorld-os/
Dependents: mRotaryEncoder_HelloWorld-os TMC2209-Test2
Diff: mRotaryEncoder.cpp
- Revision:
- 11:24b34deae975
- Parent:
- 10:2502b829d452
- Child:
- 12:1925aac090b7
diff -r 2502b829d452 -r 24b34deae975 mRotaryEncoder.cpp --- a/mRotaryEncoder.cpp Fri Feb 26 20:18:57 2016 +0000 +++ b/mRotaryEncoder.cpp Tue Mar 03 12:20:55 2020 +0000 @@ -2,7 +2,7 @@ #include "mRotaryEncoder.h" -mRotaryEncoder::mRotaryEncoder(PinName pinA, PinName pinB, PinName pinSW, PinMode pullMode, int debounceTime_us) { +mRotaryEncoder::mRotaryEncoder(PinName pinA, PinName pinB, PinName pinSW, PinMode pullMode, int debounceTime_us, int detectRise, int detectFall) { m_pinA = new PinDetect(pinA); // interrrupts on pinA m_pinB = new DigitalIn(pinB); // only digitalIn for pinB @@ -11,8 +11,12 @@ m_pinB->mode(pullMode); // attach interrrupts on pinA - m_pinA->attach_asserted(this, &mRotaryEncoder::rise); - m_pinA->attach_deasserted(this, &mRotaryEncoder::fall); + if (detectRise != 0){ + m_pinA->attach_asserted(this, &mRotaryEncoder::rise); + } + if (detectFall != 0){ + m_pinA->attach_deasserted(this, &mRotaryEncoder::fall); + } //start sampling pinA m_pinA->setSampleFrequency(debounceTime_us); // Start timers an Defaults debounce time.