From 0c0b51f6633e8923365d00de6584a08653daf719 Mon Sep 17 00:00:00 2001 From: Toyomasa Watarai Date: Wed, 7 Aug 2013 16:24:58 +0900 Subject: [PATCH] Fixed pwm_api bug Corrected pwm_timer_map table for LPC1114 --- .../cmsis/TARGET_NXP/TARGET_LPC11XX/LPC11xx.h | 2 +- .../TARGET_NXP/TARGET_LPC11XX/pwmout_api.c | 20 ++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11XX/LPC11xx.h b/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11XX/LPC11xx.h index b8a932607d..3465e38f6e 100644 --- a/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11XX/LPC11xx.h +++ b/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11XX/LPC11xx.h @@ -345,7 +345,7 @@ typedef struct __IO uint32_t PC; /*!< Offset: 0x010 Prescale Counter Register (R/W) */ __IO uint32_t MCR; /*!< Offset: 0x014 Match Control Register (R/W) */ union { - __IO uint32_t MR[4]; /*!< (@ 0x40014018) Match Register */ + __IO uint32_t MR[4]; /*!< Offset: Match Register base */ struct{ __IO uint32_t MR0; /*!< Offset: 0x018 Match Register 0 (R/W) */ __IO uint32_t MR1; /*!< Offset: 0x01C Match Register 1 (R/W) */ diff --git a/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/pwmout_api.c b/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/pwmout_api.c index 1872302219..5cb2f8e54a 100644 --- a/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/pwmout_api.c +++ b/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/pwmout_api.c @@ -54,11 +54,21 @@ typedef struct { uint8_t mr; } timer_mr; -static timer_mr pwm_timer_map[4] = { - {0, 0}, - {1, 0}, - {2, 0}, - {3, 0}, +static timer_mr pwm_timer_map[11] = { + {0, 0}, /* CT16B0, MR0 */ + {0, 1}, /* CT16B0, MR1 */ + {0, 2}, /* CT16B0, MR2 */ + + {1, 0}, /* CT16B1, MR0 */ + {1, 1}, /* CT16B1, MR1 */ + + {2, 0}, /* CT32B0, MR0 */ + {2, 1}, /* CT32B0, MR1 */ + {2, 2}, /* CT32B0, MR2 */ + + {3, 0}, /* CT32B1, MR0 */ + {3, 1}, /* CT32B1, MR1 */ + {3, 2} /* CT32B1, MR2 */ }; static LPC_TMR_TypeDef *Timers[4] = {