summaryrefslogtreecommitdiff
path: root/blink/led.c
diff options
context:
space:
mode:
Diffstat (limited to 'blink/led.c')
-rw-r--r--blink/led.c35
1 files changed, 30 insertions, 5 deletions
diff --git a/blink/led.c b/blink/led.c
index 0e035d4..997edf0 100644
--- a/blink/led.c
+++ b/blink/led.c
@@ -23,23 +23,48 @@
#include "avr/io.h"
#include "led.h"
+#define LED_DIR 1
+#if defined(__BOARD_teensy1__) || defined(__BOARD_teensy1pp__)
+#define LED_DIR 0
+#endif
+
+#if defined(__BOARD_teensy2__) || defined(__BOARD_teensy2pp__) || defined(__BOARD_teensy2__) || defined(__BOARD_teensy2pp__)
+#define LED_PORT PORTD
+#define LED_DDR DDRD
+#define LED_PINNUM 6
+#endif
+
+#if defined(__BOARD_hhd70dongle__)
+#define LED_PORT PORTE
+#define LED_DDR DDRE
+#define LED_PINNUM 6
+#endif
+
void led_init(void)
{
- PORTE = 0x00;
- DDRE = 1<<PORTE6;
+ led_off();
+ LED_DDR = 1<<LED_PINNUM;
}
void led_on(void)
{
- PORTE |= 1<<PORTE6;
+#if LED_DIR == 1
+ LED_PORT |= 1<<LED_PINNUM;
+#else
+ LED_PORT &= ~(1<<LED_PINNUM);
+#endif
}
void led_off(void)
{
- PORTE &= ~(1<<PORTE6);
+#if LED_DIR == 1
+ LED_PORT &= ~(1<<LED_PINNUM);
+#else
+ LED_PORT |= 1<<LED_PINNUM;
+#endif
}
void led_toggle(void)
{
- PORTE ^= 1<<PORTE6;
+ LED_PORT ^= 1<<LED_PINNUM;
}