You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
1.1 KiB

#ifndef _PUSHER_H
#define _PUSHER_H
#include <cstdint>
7 years ago
#include "driver/ledc.h"
#include "semaphore.h"
7 years ago
static constexpr uint16_t PROGMEM MIN_PULSE_MS = 544; // the shortest pulse sent to a servo
static constexpr uint16_t PROGMEM MAX_PULSE_MS = 2400; // the longest pulse sent to a servo
static constexpr uint16_t PROGMEM DEFAULT_PULSE_MS = 1500; // default pulse width
7 years ago
7 years ago
static constexpr int PROGMEM TIMER_WIDTH = LEDC_TIMER_15_BIT;
static constexpr uint16_t PROGMEM MIN_PULSE_WIDTH = (1 << TIMER_WIDTH) * MIN_PULSE_MS / 20000; // the shortest pulse sent to a servo
static constexpr uint16_t PROGMEM MAX_PULSE_WIDTH = (1 << TIMER_WIDTH) * MAX_PULSE_MS / 20000; // the longest pulse sent to a servo
static constexpr uint16_t PROGMEM DEFAULT_PULSE_WIDTH = (1 << TIMER_WIDTH) * DEFAULT_PULSE_MS / 20000; // default pulse width
7 years ago
static constexpr uint8_t PROGMEM LEDC_NUM_CHANNELS = 8; // default pulse width
7 years ago
static constexpr TickType_t PROGMEM TIMEOUT = portMAX_DELAY;
class Pusher {
public:
Pusher(void);
void setup(void);
7 years ago
void push(int);
private:
7 years ago
volatile SemaphoreHandle_t xSemaphore;
};
#endif /* _PUSHER_H */