mbed library sources

Dependents:   bare

Fork of mbed-src by mbed official

Files at this revision

API Documentation at this revision

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

targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL05Z/PeripheralPins.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL05Z/gpio_irq_api.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL25Z/PeripheralPins.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL25Z/gpio_irq_api.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL46Z/PeripheralPins.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_Freescale/TARGET_KLXX/TARGET_KL46Z/gpio_irq_api.c Show annotated file Show diff for this revision Revisions of this file
--- 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);
+}