]> git.donarmstrong.com Git - kiibohd-controller.git/blobdiff - Debug/led/led.c
Code cleanup
[kiibohd-controller.git] / Debug / led / led.c
index cce481be7f08560e24f958cd608c01aa129d0d4c..d2593b9b36eddb0a557fd1693d9c7b7938c29dc4 100644 (file)
@@ -1,15 +1,15 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
+/* Copyright (C) 2011-2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -21,7 +21,9 @@
 
 // ----- Includes -----
 
-// AVR Includes
+// Compiler Includes
+#include <Lib/MainLib.h>
+
 
 // Project Includes
 #include "led.h"
 // ----- Functions -----
 
 // Error LED Setup
-void init_errorLED()
+inline void init_errorLED()
 {
+// AVR
+#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_)
+
        // Use pin D6 as an output (LED)
        DDRD |= (1<<6);
+
+// ARM
+#elif defined(_mk20dx128_) || defined(_mk20dx256_)
+
+       // Enable pin
+       GPIOC_PDDR |= (1<<5);
+
+       // Setup pin - Pin 13 -> C5 - See Lib/pin_map.teensy3 for more details on pins
+       PORTC_PCR5 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
+
+// MCHCK / Kiibohd-dfu
+#elif defined(_mk20dx128vlf5_)
+
+/* Actual MCHCK
+       // Enable pin
+       GPIOB_PDDR |= (1<<16);
+
+       // Setup pin - B16 - See Lib/pin_map.mchck for more details on pins
+       PORTB_PCR16 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
+*/
+       // Kiibohd MCHCK Variant
+       // Enable pin
+       GPIOA_PDDR |= (1<<19);
+
+       // Setup pin - A19 - See Lib/pin_map.mchck for more details on pins
+       PORTA_PCR19 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
+
+// Kiibohd-dfu
+#elif defined(_mk20dx256vlh7_)
+       // Kiibohd-dfu
+       // Enable pin
+       GPIOA_PDDR |= (1<<5);
+
+       // Setup pin - A5 - See Lib/pin_map.mchck for more details on pins
+       PORTA_PCR5 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
+#endif
 }
 
 // Error LED Control
-void errorLED( uint8_t on )
+inline void errorLED( uint8_t on )
 {
+// AVR
+#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_)
+
        // Error LED On (D6)
        if ( on ) {
                PORTD |= (1<<6);
@@ -48,5 +92,54 @@ void errorLED( uint8_t on )
        else {
                PORTD &= ~(1<<6);
        }
+
+// ARM
+#elif defined(_mk20dx128_) || defined(_mk20dx256_)
+
+       // Error LED On (C5)
+       if ( on ) {
+               GPIOC_PSOR |= (1<<5);
+       }
+       // Error LED Off
+       else {
+               GPIOC_PCOR |= (1<<5);
+       }
+
+// MCHCK
+#elif defined(_mk20dx128vlf5_)
+
+/* Actual MCHCK
+       // Error LED On (B16)
+       if ( on ) {
+               GPIOB_PSOR |= (1<<16);
+       }
+       // Error LED Off
+       else {
+               GPIOB_PCOR |= (1<<16);
+       }
+*/
+       // Kiibohd MCHCK Variant
+       // Error LED On (A19)
+       if ( on ) {
+               GPIOA_PSOR |= (1<<19);
+       }
+       // Error LED Off
+       else {
+               GPIOA_PCOR |= (1<<19);
+       }
+
+// Kiibohd-dfu
+#elif defined(_mk20dx256vlh7_)
+       // Kiibohd-dfu
+       // Error LED On (A5)
+       if ( on ) {
+               GPIOA_PSOR |= (1<<5);
+       }
+       // Error LED Off
+       else {
+               GPIOA_PCOR |= (1<<5);
+       }
+
+#endif
 }