Controlor for Humanoid. Walking trajectory generator, sensor reflection etc.
Dependencies: Adafruit-PWM-Servo-Driver MPU6050 RS300 mbed
PWM.h@16:e65c192b7ecf, 2013-02-27 (annotated)
- 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?
User | Revision | Line number | New 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_ |