/* * spreadspace avr utils * * * Copyright (C) 2013-2018 Christian Pointner * * This file is part of spreadspace avr utils. * * spreadspace avr utils is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * spreadspace avr utils is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with spreadspace avr utils. If not, see . */ #include #include "led.h" #if defined(__BOARD_minimus__) || defined(__BOARD_minimus32__) || defined(__BOARD_arduinoProMicro__) || defined(__BOARD_sparkfunProMicro__) || defined(__BOARD_elecrow32u4lora__) #define NUM_LEDS 2 #elif defined(__BOARD_teensy1__) || defined(__BOARD_teensy1pp__) || defined(__BOARD_teensy2__) || defined(__BOARD_teensy2pp__) || \ defined(__BOARD_arduinoNano__) || defined(__BOARD_arduinoNG__) || defined(__BOARD_arduino2009v2__) || defined(__BOARD_arduino2009__) || \ defined(__BOARD_arduino10000__) || defined(__BOARD_arduinoUno__) || defined(__BOARD_feather32u4__) || defined(__BOARD_feather32u4lora__) || \ defined(__BOARD_hhd70dongle__) || defined(__BOARD_rda1846dongle__) || defined(__BOARD_culV3__) || \ defined(__BOARD_slowpandongle1__) || defined(__BOARD_slowpandongle2__) || defined(__BOARD_teenstep__) || \ defined(__BOARD_rhmixxx__) || defined(__BOARD_digispark__) || defined(__BOARD_robotdynMega2560__) #define NUM_LEDS 1 #else #define NUM_LEDS 0 #endif #if defined(__BOARD_teensy1__) || defined(__BOARD_teensy1pp__) || defined(__BOARD_minimus__) || defined(__BOARD_minimus32__) || \ defined(__BOARD_rhmixxx__) || defined(__BOARD_arduinoProMicro__) || defined(__BOARD_sparkfunProMicro__) || defined(__BOARD_elecrow32u4lora__) #define LED_DIR 0 #else #define LED_DIR 1 #endif #if defined(__BOARD_teensy1__) || defined(__BOARD_teensy1pp__) || defined(__BOARD_teensy2__) || defined(__BOARD_teensy2pp__) || \ defined(__BOARD_teenstep__) #define LED_PORT PORTD #define LED_DDR DDRD #define LED_PINNUM 6 #endif #if defined(__BOARD_minimus__) || defined(__BOARD_minimus32__) #define LED_PORT PORTD #define LED_DDR DDRD #define LED_PINNUM 5 #define LED2_PORT PORTD #define LED2_DDR DDRD #define LED2_PINNUM 6 #endif #if defined(__BOARD_feather32u4__) || defined(__BOARD_feather32u4lora__) #define LED_PORT PORTC #define LED_DDR DDRC #define LED_PINNUM 7 #endif #if defined(__BOARD_arduinoProMicro__) || defined(__BOARD_sparkfunProMicro__) || defined(__BOARD_elecrow32u4lora__) #define LED_PORT PORTD #define LED_DDR DDRD #define LED_PINNUM 5 #define LED2_PORT PORTB #define LED2_DDR DDRB #define LED2_PINNUM 0 #endif #if defined(__BOARD_slowpandongle2__) || defined(__BOARD_hhd70dongle__) || defined(__BOARD_rda1846dongle__) || defined(__BOARD_culV3__) #define LED_PORT PORTE #define LED_DDR DDRE #define LED_PINNUM 6 #endif #if defined(__BOARD_slowpandongle1__) #define LED_PORT PORTC #define LED_DDR DDRC #define LED_PINNUM 2 #endif #if defined(__BOARD_arduinoNano__) || defined(__BOARD_arduino2009v2__) || defined(__BOARD_arduino2009__) || defined(__BOARD_arduino10000__) || \ defined(__BOARD_arduinoNG__) || defined(__BOARD_arduinoUno__) #define LED_PORT PORTB #define LED_DDR DDRB #define LED_PINNUM 5 #endif #if defined(__BOARD_rhmixxx__) #define LED_PORT PORTE #define LED_DDR DDRE #define LED_PINNUM 0 #endif #if defined(__BOARD_digispark__) #define LED_PORT PORTB #define LED_DDR DDRB #define LED_PINNUM 1 #endif #if defined(__BOARD_robotdynMega2560__) #define LED_PORT PORTB #define LED_DDR DDRB #define LED_PINNUM 7 #endif void led_init(void) { #if NUM_LEDS >= 1 led_off(); LED_DDR |= 1<= 2 LED2_DDR |= 1<= 1 #if LED_DIR == 1 LED_PORT |= 1<= 1 #if LED_DIR == 1 LED_PORT &= ~(1<= 1 LED_PORT ^= 1<= 2 #if LED_DIR == 1 LED2_PORT |= 1<= 2 #if LED_DIR == 1 LED2_PORT &= ~(1<= 2 LED2_PORT ^= 1<