[actuators] reordering pwm_direct servos so it makes some sense

This commit is contained in:
Gautier Hattenberger
2012-10-16 14:44:56 +02:00
parent 8679d6030e
commit d7a80cce92
3 changed files with 63 additions and 41 deletions
@@ -4,18 +4,6 @@
#include "LPC21xx.h"
#include "mcu_periph/sys_time.h"
#define SERVOS_TICS_OF_USEC(s) CPU_TICKS_OF_USEC(s)
#define SERVO_REG_0 PWMMR5
#define SERVO_REG_1 PWMMR3
#define SERVO_REG_2 PWMMR1
#define SERVO_REG_3 PWMMR6
#define SERVO_REG_4 PWMMR4
#define SERVO_REG_5 PWMMR2
#define COMMAND_(i) SERVO_REG_ ## i
#define ActuatorPwmSet(_i, _v) { COMMAND_(_i) = SERVOS_TICS_OF_USEC(_v); }
/*
wiring on classix PWM connector
@@ -29,35 +17,53 @@ PWM6 PWM2 SSEL0 EINT2 P0.7
*/
#define PWM_PINSEL_MASK_VAL 3
#define SERVOS_TICS_OF_USEC(s) CPU_TICKS_OF_USEC(s)
#define PWM_SERVO_0_PINSEL PINSEL1
#define PWM_SERVO_0_PINSEL_VAL 1
#define PWM_SERVO_0_PINSEL_BIT 10
#define PWM_SERVO_0_PINSEL_MASK ~(PWM_PINSEL_MASK_VAL << PWM_SERVO_0_PINSEL_BIT)
#define PWM_SERVO_0_ENA PWMPCR_ENA5
#define PWM_SERVO_0_LATCH PWMLER_LATCH5
/* default definition of servo (from classix order) */
#ifndef SERVO_REG_0
#define SERVO_REG_0 PWMMR5
#endif
#ifndef SERVO_REG_1
#define SERVO_REG_1 PWMMR3
#endif
#ifndef SERVO_REG_2
#define SERVO_REG_2 PWMMR1
#endif
#ifndef SERVO_REG_3
#define SERVO_REG_3 PWMMR6
#endif
#ifndef SERVO_REG_4
#define SERVO_REG_4 PWMMR4
#endif
#ifndef SERVO_REG_5
#define SERVO_REG_5 PWMMR2
#endif
#define COMMAND_(i) SERVO_REG_ ## i
#define ActuatorPwmSet(_i, _v) { COMMAND_(_i) = SERVOS_TICS_OF_USEC(_v); }
#define PWM_PINSEL_MASK_VAL 3
#define PWM_SERVO_1_PINSEL PINSEL0
#define PWM_SERVO_1_PINSEL_VAL 2
#define PWM_SERVO_1_PINSEL_BIT 2
#define PWM_SERVO_1_PINSEL_BIT 0
#define PWM_SERVO_1_PINSEL_MASK ~(PWM_PINSEL_MASK_VAL << PWM_SERVO_1_PINSEL_BIT)
#define PWM_SERVO_1_ENA PWMPCR_ENA3
#define PWM_SERVO_1_LATCH PWMLER_LATCH3
#define PWM_SERVO_1_ENA PWMPCR_ENA1
#define PWM_SERVO_1_LATCH PWMLER_LATCH1
#define PWM_SERVO_2_PINSEL PINSEL0
#define PWM_SERVO_2_PINSEL_VAL 2
#define PWM_SERVO_2_PINSEL_BIT 0
#define PWM_SERVO_2_PINSEL_BIT 14
#define PWM_SERVO_2_PINSEL_MASK ~(PWM_PINSEL_MASK_VAL << PWM_SERVO_2_PINSEL_BIT)
#define PWM_SERVO_2_ENA PWMPCR_ENA1
#define PWM_SERVO_2_LATCH PWMLER_LATCH1
#define PWM_SERVO_2_ENA PWMPCR_ENA2
#define PWM_SERVO_2_LATCH PWMLER_LATCH2
#define PWM_SERVO_3_PINSEL PINSEL0
#define PWM_SERVO_3_PINSEL_VAL 2
#define PWM_SERVO_3_PINSEL_BIT 18
#define PWM_SERVO_3_PINSEL_BIT 2
#define PWM_SERVO_3_PINSEL_MASK ~(PWM_PINSEL_MASK_VAL << PWM_SERVO_3_PINSEL_BIT)
#define PWM_SERVO_3_ENA PWMPCR_ENA6
#define PWM_SERVO_3_LATCH PWMLER_LATCH6
#define PWM_SERVO_3_ENA PWMPCR_ENA3
#define PWM_SERVO_3_LATCH PWMLER_LATCH3
#define PWM_SERVO_4_PINSEL PINSEL0
#define PWM_SERVO_4_PINSEL_VAL 2
@@ -66,12 +72,19 @@ PWM6 PWM2 SSEL0 EINT2 P0.7
#define PWM_SERVO_4_ENA PWMPCR_ENA4
#define PWM_SERVO_4_LATCH PWMLER_LATCH4
#define PWM_SERVO_5_PINSEL PINSEL0
#define PWM_SERVO_5_PINSEL_VAL 2
#define PWM_SERVO_5_PINSEL_BIT 14
#define PWM_SERVO_5_PINSEL PINSEL1
#define PWM_SERVO_5_PINSEL_VAL 1
#define PWM_SERVO_5_PINSEL_BIT 10
#define PWM_SERVO_5_PINSEL_MASK ~(PWM_PINSEL_MASK_VAL << PWM_SERVO_5_PINSEL_BIT)
#define PWM_SERVO_5_ENA PWMPCR_ENA2
#define PWM_SERVO_5_LATCH PWMLER_LATCH2
#define PWM_SERVO_5_ENA PWMPCR_ENA5
#define PWM_SERVO_5_LATCH PWMLER_LATCH5
#define PWM_SERVO_6_PINSEL PINSEL0
#define PWM_SERVO_6_PINSEL_VAL 2
#define PWM_SERVO_6_PINSEL_BIT 18
#define PWM_SERVO_6_PINSEL_MASK ~(PWM_PINSEL_MASK_VAL << PWM_SERVO_6_PINSEL_BIT)
#define PWM_SERVO_6_ENA PWMPCR_ENA6
#define PWM_SERVO_6_LATCH PWMLER_LATCH6
extern const uint8_t pwm_latch_value;
+9 -4
View File
@@ -147,16 +147,21 @@
#define MS2100_DRDY_EINT 3
#define MS2100_DRDY_VIC_IT VIC_EINT3
/* BOOZ PWM0 = PWM_SERVO_0 (driver) = PWM5 (lpc)
/* Servo definition for actruators_pwm driver */
/* BOOZ PWM0 = PWM_SERVO_5 (driver) = PWM5 (lpc)
* on CAM connector */
#if USE_PWM0
#define PWM_SERVO_0 1
#define PWM_SERVO_5 1
#define SERVO_REG_0 PWMMR5
#endif
/* BOOZ PWM1 = PWM_SERVO_5 (driver) = PWM2 (lpc)
/* BOOZ PWM1 = PWM_SERVO_2 (driver) = PWM2 (lpc)
* on SPI connector */
#if USE_PWM1
#define PWM_SERVO_5 1
#define PWM_SERVO_2 1
#define SERVO_REG_1 PWMMR2
#endif
+8 -4
View File
@@ -88,14 +88,18 @@
#define SPI1_DRDY_EINT 0
#define SPI1_DRDY_VIC_IT VIC_EINT0
/* NAVGO PWM0 = PWM_SERVO_5 (driver) = PWM2 (lpc) */
/* Servo definition for actruators_pwm driver */
/* NAVGO PWM0 = PWM_SERVO_2 (driver) = PWM2 (lpc) */
#if USE_PWM0
#define PWM_SERVO_5 1
#define PWM_SERVO_2 1
#define SERVO_REG_0 PWMMR2
#endif
/* NAVGO PWM1 = PWM_SERVO_0 (driver) = PWM5 (lpc) */
/* NAVGO PWM1 = PWM_SERVO_5 (driver) = PWM5 (lpc) */
#if USE_PWM1
#define PWM_SERVO_0 1
#define PWM_SERVO_5 1
#define SERVO_REG_1 PWMMR5
#endif
#define BOARD_HAS_BARO 1