mbed library sources
Fork of mbed-src by
Revision 86:26fc69fd3b6c, committed 2014-02-08
- Comitter:
- mbed_official
- Date:
- Sat Feb 08 12:00:07 2014 +0000
- Parent:
- 85:e1a8e879a6a9
- Child:
- 87:085cde657901
- Commit message:
- Synchronized with git revision 8c4fcca8c8e600391a5ccb90a3f889019733d082
Full URL: https://github.com/mbedmicro/mbed/commit/8c4fcca8c8e600391a5ccb90a3f889019733d082/
PWM update for Freescale Targets
Changed in this revision
--- a/targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL05Z/PeripheralPins.c Fri Feb 07 18:00:11 2014 +0000 +++ b/targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL05Z/PeripheralPins.c Sat Feb 08 12:00:07 2014 +0000 @@ -92,20 +92,18 @@ /************PWM***************/ const PinMap PinMap_PWM[] = { - // LEDs - {LED_RED , PWM_4 , 2}, // PTB8 , TPM0 CH3 - {LED_GREEN, PWM_3, 2}, // PTB9 , TPM0 CH2 - {LED_BLUE , PWM_2 , 2}, // PTB10, TPM0 CH1 - - // Arduino digital pinout - {D3, PWM_8 , 2}, // PTB5 , TPM1 CH1 - {D5, PWM_7 , 2}, // PTA12, TPM1 CH0 - {D6, PWM_4 , 2}, // PTB6 , TPM0 CH3 - {D7, PWM_3 , 2}, // PTB7 , TPM0 CH2 - {D8, PWM_2 , 2}, // PTB10, TPM0 CH1 - {D9, PWM_1 , 2}, // PTB11, TPM0 CH0 - {D10, PWM_6 , 2}, // PTA5 , TPM0 CH5 - {D12, PWM_5 , 2}, // PTA6 , TPM0 CH4 - {NC , NC , 0} + {PTA0, PWM_7, 2}, // PTA0 , TPM1 CH0 + {PTA5, PWM_6 , 2}, // PTA5 , TPM0 CH5 + {PTA6, PWM_5, 2}, // PTA6 , TPM0 CH4 + {PTA12, PWM_7 , 2}, // PTA12, TPM1 CH0 + + {PTB5, PWM_8, 2}, // PTB5 , TPM1 CH1 + {PTB6, PWM_4, 2}, // PTB6 , TPM0 CH3 + {PTB7, PWM_3, 2}, // PTB7 , TPM0 CH2 + {PTB8, PWM_4, 2}, // PTB8 , TPM0 CH3 + {PTB9, PWM_3, 2}, // PTB9 , TPM0 CH2 + {PTB10, PWM_2, 2}, // PTB10 , TPM0 CH1 + {PTB11, PWM_1, 2}, // PTB11 , TPM0 CH0 + {PTB13, PWM_8, 2}, // PTB13 , TPM1 CH1 + {NC , NC, 0} }; -
--- a/targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL05Z/gpio_irq_api.c Fri Feb 07 18:00:11 2014 +0000 +++ b/targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL05Z/gpio_irq_api.c Sat Feb 08 12:00:07 2014 +0000 @@ -37,7 +37,9 @@ if (port->ISFR & pmask) { mask |= pmask; uint32_t id = channel_ids[ch_base + i]; - if (id == 0) continue; + if (id == 0) { + continue; + } FGPIO_Type *gpio; gpio_irq_event event = IRQ_NONE; @@ -170,3 +172,13 @@ NVIC_DisableIRQ(PORTB_IRQn); } } + +// Change the NMI pin to an input. This allows NMI pin to +// be used as a low power mode wakeup. The application will +// need to change the pin back to NMI_b or wakeup only occurs once! +extern void gpio_init(gpio_t *obj, PinName pin, PinDirection direction); +void NMI_Handler(void) +{ + gpio_t gpio; + gpio_init(&gpio, PTB5, PIN_INPUT); +}
--- a/targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL25Z/PeripheralPins.c Fri Feb 07 18:00:11 2014 +0000 +++ b/targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL25Z/PeripheralPins.c Sat Feb 08 12:00:07 2014 +0000 @@ -153,46 +153,45 @@ /************PWM***************/ const PinMap PinMap_PWM[] = { - // LEDs - {LED_RED , PWM_9 , 3}, // PTB18, TPM2 CH0 - {LED_GREEN, PWM_10, 3}, // PTB19, TPM2 CH1 - {LED_BLUE , PWM_2 , 4}, // PTD1 , TPM0 CH1 - - // Arduino digital pinout - {D0, PWM_9 , 3}, // PTA1 , TPM2 CH0 - {D1, PWM_10, 3}, // PTA2 , TPM2 CH1 - {D2, PWM_5 , 4}, // PTD4 , TPM0 CH4 - {D3, PWM_7 , 3}, // PTA12, TPM1 CH0 - {D4, PWM_2 , 3}, // PTA4 , TPM0 CH1 - {D5, PWM_3 , 3}, // PTA5 , TPM0 CH2 - {D6, PWM_5 , 3}, // PTC8 , TPM0 CH4 - {D7, PWM_6 , 3}, // PTC9 , TPM0 CH5 - {D8, PWM_8 , 3}, // PTA13, TPM1 CH1 - {D9, PWM_6 , 4}, // PTD5 , TPM0 CH5 - {D10, PWM_1 , 4}, // PTD0 , TPM0 CH0 - {D11, PWM_3 , 4}, // PTD2 , TPM0 CH2 - {D12, PWM_4 , 4}, // PTD3 , TPM0 CH3 - {D13, PWM_2 , 4}, // PTD1 , TPM0 CH1, + {PTA0, PWM_6, 3}, // PTA0 , TPM0 CH5 + {PTA1, PWM_9 , 3}, // PTA1 , TPM2 CH0 + {PTA2, PWM_10, 3}, // PTA2 , TPM2 CH1 + {PTA3, PWM_1, 3}, // PTA3 , TPM0 CH0 + {PTA4, PWM_2 , 3}, // PTA4 , TPM0 CH1 + {PTA5, PWM_3 , 3}, // PTA5 , TPM0 CH2 + {PTA12, PWM_7 , 3}, // PTA12, TPM1 CH0 + {PTA13, PWM_8 , 3}, // PTA13, TPM1 CH1 + + {PTB0, PWM_7, 3}, // PTB0 , TPM1 CH0 + {PTB1, PWM_8, 3}, // PTB1 , TPM1 CH1 + {PTB2, PWM_9, 3}, // PTB2 , TPM2 CH0 + {PTB3, PWM_10, 3}, // PTB3 , TPM2 CH1 + {PTB18, PWM_9, 3}, // PTB18, TPM2 CH0 + {PTB19, PWM_10, 3}, // PTB18, TPM2 CH1 - {PTA0, PWM_6, 3}, - {PTA3, PWM_1, 3}, - {PTB0, PWM_7, 3}, - {PTB1, PWM_8, 3}, - {PTB2, PWM_9, 3}, - {PTB3, PWM_10, 3}, - {PTC1, PWM_1, 4}, - {PTC2, PWM_2, 4}, - {PTC3, PWM_3, 4}, - {PTC4, PWM_4, 4}, - {PTE20, PWM_7, 3}, - {PTE21, PWM_8, 3}, - {PTE22, PWM_9, 3}, - {PTE23, PWM_10, 3}, - {PTE24, PWM_1, 3}, - {PTE25, PWM_2, 3}, - {PTE29, PWM_3, 3}, - {PTE30, PWM_4, 3}, - {PTE31, PWM_5, 3}, + {PTC1, PWM_1, 4}, // PTC1 , TPM0 CH0 + {PTC2, PWM_2, 4}, // PTC2 , TPM0 CH1 + {PTC3, PWM_3, 4}, // PTC3 , TPM0 CH2 + {PTC4, PWM_4, 4}, // PTC4 , TPM0 CH3 + {PTC8, PWM_5 , 3}, // PTC8 , TPM0 CH4 + {PTC9, PWM_6 , 3}, // PTC9 , TPM0 CH5 + + {PTD0, PWM_1 , 4}, // PTD0 , TPM0 CH0 + {PTD1, PWM_2 , 4}, // PTD0 , TPM0 CH1 + {PTD2, PWM_3 , 4}, // PTD2 , TPM0 CH2 + {PTD3, PWM_4 , 4}, // PTD3 , TPM0 CH3 + {PTD4, PWM_5 , 4}, // PTD4 , TPM0 CH4 + {PTD5, PWM_6 , 4}, // PTD5 , TPM0 CH5 - {NC , NC , 0} + {PTE20, PWM_7, 3}, // PTE20, TPM1 CH0 + {PTE21, PWM_8, 3}, // PTE21, TPM1 CH1 + {PTE22, PWM_9, 3}, // PTE22, TPM2 CH0 + {PTE23, PWM_10, 3}, // PTE23, TPM2 CH1 + {PTE24, PWM_1, 3}, // PTE24, TPM0 CH0 + {PTE25, PWM_2, 3}, // PTE25, TPM0 CH1 + {PTE26, PWM_6, 3}, // PTE26, TPM0 CH5 + {PTE29, PWM_3, 3}, // PTE29, TPM0 CH2 + {PTE30, PWM_4, 3}, // PTE30, TPM0 CH3 + {PTE31, PWM_5, 3}, // PTE31, TPM0 CH4 + {NC , NC, 0} };
--- a/targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL25Z/gpio_irq_api.c Fri Feb 07 18:00:11 2014 +0000 +++ b/targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL25Z/gpio_irq_api.c Sat Feb 08 12:00:07 2014 +0000 @@ -37,7 +37,9 @@ if (port->ISFR & pmask) { mask |= pmask; uint32_t id = channel_ids[ch_base + i]; - if (id == 0) continue; + if (id == 0) { + continue; + } FGPIO_Type *gpio; gpio_irq_event event = IRQ_NONE; @@ -55,8 +57,9 @@ event = (gpio->PDIR & pmask) ? (IRQ_RISE) : (IRQ_FALL); break; } - if (event != IRQ_NONE) + if (event != IRQ_NONE) { irq_handler(id, event); + } } } port->ISFR = mask; @@ -159,3 +162,13 @@ NVIC_DisableIRQ(PORTD_IRQn); } } + +// Change the NMI pin to an input. This allows NMI pin to +// be used as a low power mode wakeup. The application will +// need to change the pin back to NMI_b or wakeup only occurs once! +extern void gpio_init(gpio_t *obj, PinName pin, PinDirection direction); +void NMI_Handler(void) +{ + gpio_t gpio; + gpio_init(&gpio, PTA4, PIN_INPUT); +}
--- a/targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL46Z/PeripheralPins.c Fri Feb 07 18:00:11 2014 +0000 +++ b/targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL46Z/PeripheralPins.c Sat Feb 08 12:00:07 2014 +0000 @@ -163,47 +163,47 @@ /************PWM***************/ const PinMap PinMap_PWM[] = { - // LEDs - only RED pin is PWM capable - {LED_RED, PWM_3, 3}, // PTE29, TPM0 CH2 - - // Arduino digital pinout - {D0, PWM_9 , 3}, // PTA1 , TPM2 CH0 - {D1, PWM_10, 3}, // PTA2 , TPM2 CH1 - {D2, PWM_4 , 4}, // PTD3 , TPM0 CH3 - {D3, PWM_7 , 3}, // PTA12, TPM1 CH0 - {D4, PWM_2 , 3}, // PTA4 , TPM0 CH1 - {D5, PWM_3 , 3}, // PTA5 , TPM0 CH2 - {D6, PWM_5 , 3}, // PTC8 , TPM0 CH4 - {D7, PWM_6 , 3}, // PTC9 , TPM0 CH5 - {D8, PWM_8 , 3}, // PTA13, TPM1 CH1 - {D9, PWM_3 , 4}, // PTD2 , TPM0 CH2 - {D10, PWM_5 , 4}, // PTD4 , TPM0 CH4 - //PWM on D11 not available - //PWM on D12 not available - {D13, PWM_2 , 4}, // PTD5 , TPM0 CH1, + {PTA0, PWM_6, 3}, // PTA0 , TPM0 CH5 + {PTA1, PWM_9 , 3}, // PTA1 , TPM2 CH0 + {PTA2, PWM_10, 3}, // PTA2 , TPM2 CH1 + {PTA3, PWM_1, 3}, // PTA3 , TPM0 CH0 + {PTA4, PWM_2 , 3}, // PTA4 , TPM0 CH1 + {PTA5, PWM_3 , 3}, // PTA5 , TPM0 CH2 + {PTA6, PWM_4, 3}, // PTA6 , TPM0 CH3 + {PTA7, PWM_5, 3}, // PTA7 , TPM0 CH4 + {PTA12, PWM_7 , 3}, // PTA12, TPM1 CH0 + {PTA13, PWM_8 , 3}, // PTA13, TPM1 CH1 + + {PTB0, PWM_7, 3}, // PTB0 , TPM1 CH0 + {PTB1, PWM_8, 3}, // PTB1 , TPM1 CH1 + {PTB2, PWM_9, 3}, // PTB2 , TPM2 CH0 + {PTB3, PWM_10, 3}, // PTB3 , TPM2 CH1 + {PTB18, PWM_9, 3}, // PTB18, TPM2 CH0 + {PTB19, PWM_10, 3}, // PTB18, TPM2 CH1 - {PTA0, PWM_6, 3}, - {PTA3, PWM_1, 3}, - {PTA6, PWM_4, 3}, - {PTA7, PWM_5, 3}, - {PTB0, PWM_7, 3}, - {PTB1, PWM_8, 3}, - {PTB2, PWM_9, 3}, - {PTB3, PWM_10, 3}, - {PTC1, PWM_1, 4}, - {PTC2, PWM_2, 4}, - {PTC3, PWM_3, 4}, - {PTC4, PWM_4, 4}, - {PTE20, PWM_7, 3}, - {PTE21, PWM_8, 3}, - {PTE22, PWM_9, 3}, - {PTE23, PWM_10, 3}, - {PTE24, PWM_1, 3}, - {PTE25, PWM_2, 3}, - {PTE26, PWM_6, 3}, - {PTE29, PWM_3, 3}, - {PTE30, PWM_4, 3}, - {PTE31, PWM_5, 3}, + {PTC1, PWM_1, 4}, // PTC1 , TPM0 CH0 + {PTC2, PWM_2, 4}, // PTC2 , TPM0 CH1 + {PTC3, PWM_3, 4}, // PTC3 , TPM0 CH2 + {PTC4, PWM_4, 4}, // PTC4 , TPM0 CH3 + {PTC8, PWM_5 , 3}, // PTC8 , TPM0 CH4 + {PTC9, PWM_6 , 3}, // PTC9 , TPM0 CH5 + + {PTD0, PWM_1 , 4}, // PTD0 , TPM0 CH0 + {PTD1, PWM_2 , 4}, // PTD0 , TPM0 CH1 + {PTD2, PWM_3 , 4}, // PTD2 , TPM0 CH2 + {PTD3, PWM_4 , 4}, // PTD3 , TPM0 CH3 + {PTD4, PWM_5 , 4}, // PTD4 , TPM0 CH4 + {PTD5, PWM_6 , 4}, // PTD5 , TPM0 CH5 - {NC , NC , 0} + {PTE20, PWM_7, 3}, // PTE20, TPM1 CH0 + {PTE21, PWM_8, 3}, // PTE21, TPM1 CH1 + {PTE22, PWM_9, 3}, // PTE22, TPM2 CH0 + {PTE23, PWM_10, 3}, // PTE23, TPM2 CH1 + {PTE24, PWM_1, 3}, // PTE24, TPM0 CH0 + {PTE25, PWM_2, 3}, // PTE25, TPM0 CH1 + {PTE26, PWM_6, 3}, // PTE26, TPM0 CH5 + {PTE29, PWM_3, 3}, // PTE29, TPM0 CH2 + {PTE30, PWM_4, 3}, // PTE30, TPM0 CH3 + {PTE31, PWM_5, 3}, // PTE31, TPM0 CH4 + {NC , NC, 0} };
--- a/targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL46Z/gpio_irq_api.c Fri Feb 07 18:00:11 2014 +0000 +++ b/targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL46Z/gpio_irq_api.c Sat Feb 08 12:00:07 2014 +0000 @@ -37,8 +37,9 @@ if (port->ISFR & pmask) { mask |= pmask; uint32_t id = channel_ids[ch_base + i]; - if (id == 0) + if (id == 0) { continue; + } FGPIO_Type *gpio; gpio_irq_event event = IRQ_NONE; @@ -181,3 +182,13 @@ NVIC_DisableIRQ(PORTC_PORTD_IRQn); } } + +// Change the NMI pin to an input. This allows NMI pin to +// be used as a low power mode wakeup. The application will +// need to change the pin back to NMI_b or wakeup only occurs once! +extern void gpio_init(gpio_t *obj, PinName pin, PinDirection direction); +void NMI_Handler(void) +{ + gpio_t gpio; + gpio_init(&gpio, PTA4, PIN_INPUT); +}