Revision 1418
Added encoder_get_x and encoder_get_v.
use get_v at your own risk
If encoder_read returns -1, this usually means battery is low.
If encoder_read returns a value greater than ENCODER_MAX, this usually means there are physical problems with the encoder.
encoders.h | ||
---|---|---|
28 | 28 |
#define RIGHT 1 |
29 | 29 |
#endif |
30 | 30 |
|
31 |
/** @brief Max value of valid encoder reading. **/ |
|
32 |
#define ENCODER_MAX 1024 |
|
33 |
|
|
31 | 34 |
/** @brief Magnet misaligned - likely distance from encoder problem. **/ |
32 | 35 |
#define ENCODER_MAGNET_FAILURE 1025 |
33 | 36 |
/** @brief Encoder misaligned - likely on XY plane. **/ |
... | ... | |
49 | 52 |
#define MagDECn _BV(0) |
50 | 53 |
|
51 | 54 |
/** @brief Buffer size **/ |
52 |
#define BUFFER_SIZE 23
|
|
55 |
#define BUFFER_SIZE 46
|
|
53 | 56 |
|
57 |
#define ERR_VEL 1024 |
|
58 |
|
|
54 | 59 |
/** @brief Initialize encoders. **/ |
55 | 60 |
void encoders_init(void); |
56 | 61 |
/** @brief Read instantaneous encoder value. **/ |
57 | 62 |
int encoder_read(char encoder); |
58 | 63 |
|
64 |
/** @brief Get total distance traveled. |
|
65 |
* @note Simply calls encoder_get_dx. |
|
66 |
**/ |
|
67 |
int encoder_get_x(char encoder); |
|
68 |
|
|
69 |
/** @brief Get instantaneous velocity. **/ |
|
70 |
int encoder_get_v(char encoder); |
|
71 |
|
|
59 | 72 |
/** @brief Get total distance traveled. **/ |
60 | 73 |
int encoder_get_dx(char encoder); |
61 | 74 |
/** @brief Reset distance counter. **/ |
Also available in: Unified diff