![]() |
#include "ch.h"
#include "hal.h"
#include "hw.h"
#include "conf_general.h"
#include "stm32f4xx_conf.h"
Go to the source code of this file.
Data Structures | |
struct | SERVO |
Macros | |
#define | _BV(bit) (1 << (bit)) |
#define | MIN(a, b) (((a)<(b))?(a):(b)) |
#define | MAX(a, b) (((a)>(b))?(a):(b)) |
#define | SERVOS_NUM HW_SERVO_NUM |
#define | SERVO_CNT_SPEED 1000000L |
#define | S_STARTPULSE SERVO_OUT_PULSE_MIN_US |
#define | S_PULSELEN (SERVO_OUT_PULSE_MAX_US - SERVO_OUT_PULSE_MIN_US) |
#define | S_COOLDOWN (1000000 / SERVO_OUT_RATE_HZ) |
#define | SERVO_START_OFFSET (SERVO_CNT_SPEED / (1000000L / S_STARTPULSE)) |
#define | SERVO_CPU_FACTOR ((SERVO_CNT_SPEED + ((1000000L / S_PULSELEN) * 256L) - 1L) / ((1000000L / S_PULSELEN) * 256L)) |
#define | SERVO_COOLDOWN_FACTOR (SERVO_CNT_SPEED / (1000000L / S_COOLDOWN)) |
#define | USE_COMMANDS 0 |
#define | TEST_CYCLE_TIME 0 |
#define | ACTUAL_POS(servo) (MAX(MIN(servo.pos + (signed short)servo.offset, 255), 0)) |
#define | ACTUAL_POS_PTR(servo) (MAX(MIN(servo->pos + (signed short)servo->offset, 255), 0)) |
#define | CMD_MS_TO_VAL(ms) ((ms) / (((S_STARTPULSE + S_PULSELEN + S_COOLDOWN) * CMD_WAIT_FACTOR) / 1000)) |
#define | SERVO_PERIOD_TIME_MS ((S_STARTPULSE + S_PULSELEN + S_COOLDOWN) / 1000) |
Functions | |
void | servo_init (void) |
void | servo_stop_driver (void) |
unsigned char | servo_driver_is_active (void) |
void | servo_irq (void) |
Variables | |
volatile SERVO | servos [SERVOS_NUM] |
#define _BV | ( | bit | ) | (1 << (bit)) |
#define CMD_MS_TO_VAL | ( | ms | ) | ((ms) / (((S_STARTPULSE + S_PULSELEN + S_COOLDOWN) * CMD_WAIT_FACTOR) / 1000)) |
#define MAX | ( | a, | |
b | |||
) | (((a)>(b))?(a):(b)) |
#define MIN | ( | a, | |
b | |||
) | (((a)<(b))?(a):(b)) |
#define S_COOLDOWN (1000000 / SERVO_OUT_RATE_HZ) |
#define S_PULSELEN (SERVO_OUT_PULSE_MAX_US - SERVO_OUT_PULSE_MIN_US) |
#define S_STARTPULSE SERVO_OUT_PULSE_MIN_US |
#define SERVO_CNT_SPEED 1000000L |
#define SERVO_COOLDOWN_FACTOR (SERVO_CNT_SPEED / (1000000L / S_COOLDOWN)) |
#define SERVO_CPU_FACTOR ((SERVO_CNT_SPEED + ((1000000L / S_PULSELEN) * 256L) - 1L) / ((1000000L / S_PULSELEN) * 256L)) |
#define SERVO_PERIOD_TIME_MS ((S_STARTPULSE + S_PULSELEN + S_COOLDOWN) / 1000) |
#define SERVO_START_OFFSET (SERVO_CNT_SPEED / (1000000L / S_STARTPULSE)) |
#define SERVOS_NUM HW_SERVO_NUM |
#define TEST_CYCLE_TIME 0 |
#define USE_COMMANDS 0 |
unsigned char servo_driver_is_active | ( | void | ) |
void servo_init | ( | void | ) |
void servo_irq | ( | void | ) |
void servo_stop_driver | ( | void | ) |
volatile SERVO servos[SERVOS_NUM] |