RSeries astromech firmware
ServoDispatchPCA9685.h File Reference
#include "ServoDispatch.h"
#include <Wire.h>
+ Include dependency graph for ServoDispatchPCA9685.h:

Go to the source code of this file.

Classes

class  ServoDispatchPCA9685< numServos, defaultOEValue >
 Implements ServoDispatch over i2c to PCA9685. More...
 

Macros

#define SERVO_DEBUG_PRINT(s)
 
#define SERVO_DEBUG_PRINTLN(s)
 
#define SERVO_DEBUG_PRINT_HEX(s)
 
#define SERVO_DEBUG_PRINTLN_HEX(s)
 
#define VERBOSE_SERVO_DEBUG_PRINT(s)
 
#define VERBOSE_SERVO_DEBUG_PRINTLN(s)
 
#define VERBOSE_SERVO_DEBUG_PRINT_HEX(s)
 
#define VERBOSE_SERVO_DEBUG_PRINTLN_HEX(s)
 
#define PCA9685_MODE1   0x00
 
#define PCA9685_MODE2   0x01
 
#define PCA9685_SWRST_ADDR   0X00
 
#define PCA9685_SWRST_ACK   0x06
 
#define PCA9685_SWRST_NOACK   0x00
 
#define PCA9685_AI   0x20
 
#define PCA9685_ALLCALL   0x01
 
#define PCA9685_PRESCALE   0xFE
 
#define PCA9685_SLEEP   0x10
 
#define PCA9685_ALLCALLADR   0x70
 
#define PCA9685_ALL_LED_ON_L   0xFA
 
#define PCA9685_ALL_LED_ON_H   0xFB
 
#define PCA9685_ALL_LED_OFF_L   0xFC
 
#define PCA9685_ALL_LED_OFF_H   0xFD
 
#define PCA9685_DEFAULT_PRESCALE_VALUE   0x1A
 
#define LED0_ON_L   0x06
 
#define LED0_ON_H   0x07
 
#define LED0_OFF_L   0x08
 
#define LED0_OFF_H   0x09
 
#define LED_FULL_OFF_L   0x00
 
#define LED_FULL_OFF_H   0x10
 
#define POPULATED_CHANNEL_NUMBER   32
 
#define MIN_PWM_LENGTH   500
 
#define MAX_PWM_LENGTH   2500
 
#define DEFAULT_CHANNEL_STAGGERING   false
 
#define CHANNEL_OFFSET_STEP   50
 
#define NOMINATED_ROOM_TEMPERATURE   25
 
#define DEFAULT_TEMPERATURE_CORRECTION   40
 
#define DEFAULT_SERVO_PWM_LENGTH   1500
 
#define NOMINAL_CLOCK_FREQUENCY   25000000
 
#define DEFAULT_UPDATE_FREQUENCY   50
 
#define TEMPERATURE_CORRECTION_COEFFICIENT   0.00020
 
#define TEMPERATURE_CORRECTION_STEP   128
 
#define TEMPERATURE_CORRECTION_POINTS   ((MAX_PWM_LENGTH-MIN_PWM_LENGTH)/TEMPERATURE_CORRECTION_STEP)
 

Typedefs

template<uint16_t numServos>
using ServoDispatchFuzzyNoodlePCA9685 = ServoDispatchPCA9685< numServos, LOW >
 

Macro Definition Documentation

◆ CHANNEL_OFFSET_STEP

#define CHANNEL_OFFSET_STEP   50

◆ DEFAULT_CHANNEL_STAGGERING

#define DEFAULT_CHANNEL_STAGGERING   false

◆ DEFAULT_SERVO_PWM_LENGTH

#define DEFAULT_SERVO_PWM_LENGTH   1500

◆ DEFAULT_TEMPERATURE_CORRECTION

#define DEFAULT_TEMPERATURE_CORRECTION   40

◆ DEFAULT_UPDATE_FREQUENCY

#define DEFAULT_UPDATE_FREQUENCY   50

◆ LED0_OFF_H

#define LED0_OFF_H   0x09

◆ LED0_OFF_L

#define LED0_OFF_L   0x08

◆ LED0_ON_H

#define LED0_ON_H   0x07

◆ LED0_ON_L

#define LED0_ON_L   0x06

◆ LED_FULL_OFF_H

#define LED_FULL_OFF_H   0x10

◆ LED_FULL_OFF_L

#define LED_FULL_OFF_L   0x00

◆ MAX_PWM_LENGTH

#define MAX_PWM_LENGTH   2500

◆ MIN_PWM_LENGTH

#define MIN_PWM_LENGTH   500

◆ NOMINAL_CLOCK_FREQUENCY

#define NOMINAL_CLOCK_FREQUENCY   25000000

◆ NOMINATED_ROOM_TEMPERATURE

#define NOMINATED_ROOM_TEMPERATURE   25

◆ PCA9685_AI

#define PCA9685_AI   0x20

◆ PCA9685_ALL_LED_OFF_H

#define PCA9685_ALL_LED_OFF_H   0xFD

◆ PCA9685_ALL_LED_OFF_L

#define PCA9685_ALL_LED_OFF_L   0xFC

◆ PCA9685_ALL_LED_ON_H

#define PCA9685_ALL_LED_ON_H   0xFB

◆ PCA9685_ALL_LED_ON_L

#define PCA9685_ALL_LED_ON_L   0xFA

◆ PCA9685_ALLCALL

#define PCA9685_ALLCALL   0x01

◆ PCA9685_ALLCALLADR

#define PCA9685_ALLCALLADR   0x70

◆ PCA9685_DEFAULT_PRESCALE_VALUE

#define PCA9685_DEFAULT_PRESCALE_VALUE   0x1A

◆ PCA9685_MODE1

#define PCA9685_MODE1   0x00

◆ PCA9685_MODE2

#define PCA9685_MODE2   0x01

◆ PCA9685_PRESCALE

#define PCA9685_PRESCALE   0xFE

◆ PCA9685_SLEEP

#define PCA9685_SLEEP   0x10

◆ PCA9685_SWRST_ACK

#define PCA9685_SWRST_ACK   0x06

◆ PCA9685_SWRST_ADDR

#define PCA9685_SWRST_ADDR   0X00

◆ PCA9685_SWRST_NOACK

#define PCA9685_SWRST_NOACK   0x00

◆ POPULATED_CHANNEL_NUMBER

#define POPULATED_CHANNEL_NUMBER   32

◆ SERVO_DEBUG_PRINT

#define SERVO_DEBUG_PRINT (   s)

◆ SERVO_DEBUG_PRINT_HEX

#define SERVO_DEBUG_PRINT_HEX (   s)

◆ SERVO_DEBUG_PRINTLN

#define SERVO_DEBUG_PRINTLN (   s)

◆ SERVO_DEBUG_PRINTLN_HEX

#define SERVO_DEBUG_PRINTLN_HEX (   s)

◆ TEMPERATURE_CORRECTION_COEFFICIENT

#define TEMPERATURE_CORRECTION_COEFFICIENT   0.00020

◆ TEMPERATURE_CORRECTION_POINTS

#define TEMPERATURE_CORRECTION_POINTS   ((MAX_PWM_LENGTH-MIN_PWM_LENGTH)/TEMPERATURE_CORRECTION_STEP)

◆ TEMPERATURE_CORRECTION_STEP

#define TEMPERATURE_CORRECTION_STEP   128

◆ VERBOSE_SERVO_DEBUG_PRINT

#define VERBOSE_SERVO_DEBUG_PRINT (   s)

◆ VERBOSE_SERVO_DEBUG_PRINT_HEX

#define VERBOSE_SERVO_DEBUG_PRINT_HEX (   s)

◆ VERBOSE_SERVO_DEBUG_PRINTLN

#define VERBOSE_SERVO_DEBUG_PRINTLN (   s)

◆ VERBOSE_SERVO_DEBUG_PRINTLN_HEX

#define VERBOSE_SERVO_DEBUG_PRINTLN_HEX (   s)

Typedef Documentation

◆ ServoDispatchFuzzyNoodlePCA9685

template<uint16_t numServos>
using ServoDispatchFuzzyNoodlePCA9685 = ServoDispatchPCA9685<numServos, LOW>