Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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);
+}
