Controlor for Humanoid. Walking trajectory generator, sensor reflection etc.

Dependencies:   Adafruit-PWM-Servo-Driver MPU6050 RS300 mbed

Committer:
syundo0730
Date:
Wed Feb 27 12:32:44 2013 +0000
Revision:
16:e65c192b7ecf
Parent:
11:1539d181e159
Child:
21:a54bcab078ed
ROBO-ONE 22th version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
syundo0730 9:d9ce965299d2 1 #ifndef PWM_H_2012_08_28_
syundo0730 9:d9ce965299d2 2 #define PWM_H_2012_08_28_
syundo0730 9:d9ce965299d2 3
syundo0730 9:d9ce965299d2 4 #include "LPC17xx.h"
syundo0730 9:d9ce965299d2 5 #include "mbed.h"
syundo0730 9:d9ce965299d2 6
syundo0730 9:d9ce965299d2 7 const uint32_t SRV_PERIOD = 2500 - 1;//
syundo0730 9:d9ce965299d2 8 const uint32_t SRV_MAX_DUTY = 2100 - 1;//
syundo0730 9:d9ce965299d2 9 const uint32_t SRV_MIN_DUTY = 900 - 1;//
syundo0730 9:d9ce965299d2 10
syundo0730 9:d9ce965299d2 11 const uint8_t SRV_IDX_SHIFT = 3;//
syundo0730 9:d9ce965299d2 12 const uint8_t SRV_IDX_NUM = 1 << SRV_IDX_SHIFT;//
syundo0730 9:d9ce965299d2 13 const uint8_t SRV_IDX_MASK = SRV_IDX_NUM - 1;//
syundo0730 9:d9ce965299d2 14 const uint8_t SRV_BANK_NUM = 3;//
syundo0730 9:d9ce965299d2 15 const uint8_t SRV_CH_NUM = SRV_IDX_NUM * SRV_BANK_NUM;//
syundo0730 9:d9ce965299d2 16
syundo0730 11:1539d181e159 17 const uint32_t SRV_PWMTable[SRV_BANK_NUM][SRV_IDX_NUM] = {
syundo0730 11:1539d181e159 18 {0,SRV_PERIOD,0,SRV_PERIOD,0,SRV_PERIOD,0,SRV_PERIOD},
syundo0730 11:1539d181e159 19 {0,0,SRV_PERIOD,SRV_PERIOD,0,0,SRV_PERIOD,SRV_PERIOD},
syundo0730 11:1539d181e159 20 {0,0,0,0,SRV_PERIOD,SRV_PERIOD,SRV_PERIOD,SRV_PERIOD}
syundo0730 11:1539d181e159 21 };
syundo0730 11:1539d181e159 22
syundo0730 16:e65c192b7ecf 23 const uint16_t HOMEPOS[] = {
syundo0730 16:e65c192b7ecf 24 1570,
syundo0730 16:e65c192b7ecf 25 1490,
syundo0730 16:e65c192b7ecf 26 1500,
syundo0730 16:e65c192b7ecf 27 1820,
syundo0730 16:e65c192b7ecf 28 1515,
syundo0730 16:e65c192b7ecf 29 1500,
syundo0730 16:e65c192b7ecf 30 0,
syundo0730 16:e65c192b7ecf 31 0,
syundo0730 16:e65c192b7ecf 32 1500,
syundo0730 16:e65c192b7ecf 33 1500,
syundo0730 16:e65c192b7ecf 34 1500,
syundo0730 16:e65c192b7ecf 35 1220,
syundo0730 16:e65c192b7ecf 36 1500,
syundo0730 16:e65c192b7ecf 37 1500,
syundo0730 16:e65c192b7ecf 38 0,
syundo0730 16:e65c192b7ecf 39 0,
syundo0730 16:e65c192b7ecf 40 1520,
syundo0730 16:e65c192b7ecf 41 1520,
syundo0730 16:e65c192b7ecf 42 1520,
syundo0730 16:e65c192b7ecf 43 1520,
syundo0730 16:e65c192b7ecf 44 1520,
syundo0730 16:e65c192b7ecf 45 1520,
syundo0730 16:e65c192b7ecf 46 1520,
syundo0730 16:e65c192b7ecf 47 1520
syundo0730 16:e65c192b7ecf 48 };
syundo0730 16:e65c192b7ecf 49
syundo0730 9:d9ce965299d2 50 class PWM {
syundo0730 9:d9ce965299d2 51 public:
syundo0730 9:d9ce965299d2 52 PWM();
syundo0730 9:d9ce965299d2 53 public:
syundo0730 9:d9ce965299d2 54 void InitPWM();
syundo0730 9:d9ce965299d2 55 void SetDuty(uint8_t ch, uint32_t duty);
syundo0730 9:d9ce965299d2 56 public:
syundo0730 9:d9ce965299d2 57 static volatile uint8_t SRV_Idx;
syundo0730 9:d9ce965299d2 58 static volatile uint32_t SRV_dutyTable[SRV_BANK_NUM][SRV_IDX_NUM];
syundo0730 9:d9ce965299d2 59 };
syundo0730 9:d9ce965299d2 60
syundo0730 9:d9ce965299d2 61 #ifdef __cplusplus
syundo0730 9:d9ce965299d2 62 extern "C" {
syundo0730 9:d9ce965299d2 63 void PWM1_IRQHandler();
syundo0730 9:d9ce965299d2 64 }
syundo0730 9:d9ce965299d2 65 #endif
syundo0730 9:d9ce965299d2 66
syundo0730 9:d9ce965299d2 67 #endif //PWM_H_2012_08_28_