38 lines
577 B
C
38 lines
577 B
C
|
/*
|
||
|
* Rotary encoder library for Arduino.
|
||
|
*/
|
||
|
|
||
|
#ifndef rotary_h
|
||
|
#define rotary_h
|
||
|
|
||
|
#include "Arduino.h"
|
||
|
|
||
|
// Enable this to emit codes twice per step.
|
||
|
//#define HALF_STEP
|
||
|
|
||
|
// Enable weak pullups
|
||
|
#define ENABLE_PULLUPS
|
||
|
|
||
|
// Values returned by 'process'
|
||
|
// No complete step yet.
|
||
|
#define DIR_NONE 0x0
|
||
|
// Clockwise step.
|
||
|
#define DIR_CW 0x10
|
||
|
// Anti-clockwise step.
|
||
|
#define DIR_CCW 0x20
|
||
|
|
||
|
class Rotary
|
||
|
{
|
||
|
public:
|
||
|
Rotary(char, char);
|
||
|
// Process pin(s)
|
||
|
unsigned char process();
|
||
|
private:
|
||
|
unsigned char state;
|
||
|
unsigned char pin1;
|
||
|
unsigned char pin2;
|
||
|
};
|
||
|
|
||
|
#endif
|
||
|
|