27 lines
578 B
C
27 lines
578 B
C
#ifndef SERVO_H
|
|
#define SERVO_H
|
|
|
|
|
|
#define NUM_SERVO_CHANNELS 18
|
|
#define SERVO_CENTER_PULSE 1500
|
|
#define SERVO_MIN_PULSE 750
|
|
#define SERVO_MAX_PULSE 2500
|
|
#define SERVO_HALF_PULSE_RANGE 875
|
|
#define SERVO_MAX_ANGLE 2.3561944902f
|
|
#define SERVO_MIN_ANGLE -2.3561944902f
|
|
#define SERVO_ANGLE_PULSE_MULTIPLIER 371.3615338798826f
|
|
|
|
|
|
struct servo_t {
|
|
float current_position;
|
|
float set_position;
|
|
};
|
|
|
|
|
|
int servo_init();
|
|
void servo_set_angle(int channel, float angle);
|
|
void servo_set_all_angles(float angles[NUM_SERVO_CHANNELS]);
|
|
int servo_set(int channel, float angle);
|
|
|
|
|
|
#endif // SERVO_H
|