added prescaler for 16 bit pwm in LPC1347 target
Fork of mbed-dev by
Diff: targets/cmsis/TARGET_Freescale/TARGET_K22F/cmsis_nvic.c
- Revision:
- 121:7f86b4238bec
- Parent:
- 8:69ce7aaad4c4
- Child:
- 144:ef7eb2e8f9f7
--- a/targets/cmsis/TARGET_Freescale/TARGET_K22F/cmsis_nvic.c Fri Apr 29 16:15:10 2016 +0100 +++ b/targets/cmsis/TARGET_Freescale/TARGET_K22F/cmsis_nvic.c Tue May 03 00:15:16 2016 +0100 @@ -30,22 +30,10 @@ */ #include "cmsis_nvic.h" -#define NVIC_RAM_VECTOR_ADDRESS (0x1FFF0000) // Vectors positioned at start of RAM +extern void InstallIRQHandler(IRQn_Type irq, uint32_t irqHandler); void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) { - uint32_t *vectors = (uint32_t*)SCB->VTOR; - uint32_t i; - - // Copy and switch to dynamic vectors if the first time called - if (SCB->VTOR < NVIC_RAM_VECTOR_ADDRESS) { - uint32_t *old_vectors = vectors; - vectors = (uint32_t*)NVIC_RAM_VECTOR_ADDRESS; - for (i=0; i<NVIC_NUM_VECTORS; i++) { - vectors[i] = old_vectors[i]; - } - SCB->VTOR = (uint32_t)NVIC_RAM_VECTOR_ADDRESS; - } - vectors[IRQn + 16] = vector; + InstallIRQHandler(IRQn, vector); } uint32_t NVIC_GetVector(IRQn_Type IRQn) {