mirror of https://github.com/joan2937/pigpio
36 lines
723 B
C++
36 lines
723 B
C++
#ifndef ROTARY_ENCODER_HPP
|
|
#define ROTARY_ENCODER_HPP
|
|
|
|
#include <stdint.h>
|
|
|
|
typedef void (*re_decoderCB_t)(int);
|
|
|
|
class re_decoder
|
|
{
|
|
int mygpioA, mygpioB, levA, levB, lastGpio;
|
|
|
|
re_decoderCB_t mycallback;
|
|
|
|
void _pulse(int gpio, int level, uint32_t tick);
|
|
|
|
/* Need a static callback to link with C. */
|
|
static void _pulseEx(int gpio, int level, uint32_t tick, void *user);
|
|
|
|
|
|
public:
|
|
|
|
re_decoder(int gpioA, int gpioB, re_decoderCB_t callback);
|
|
/*
|
|
This function establishes a rotary encoder on gpioA and gpioB.
|
|
|
|
When the encoder is turned the callback function is called.
|
|
*/
|
|
|
|
void re_cancel(void);
|
|
/*
|
|
This function releases the resources used by the decoder.
|
|
*/
|
|
};
|
|
|
|
#endif
|