You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
ASYD/ASYD_Trends/tinyK22_LowPower_Modes/source/leds.c

82 lines
2.1 KiB

/*
* Copyright (c) 2019, Erich Styger
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include "platform.h"
#include "leds.h"
#include "McuLED.h"
#if PL_BOARD_IS_TINYK22 /* tinyK22 */
#define PINS_LEDBLUE_GPIO GPIOC
#define PINS_LEDBLUE_PORT PORTC
#define PINS_LEDBLUE_PIN 2U
#else /* FRDM-K22F */
/* blue: PTD5 */
#define PINS_LEDBLUE_GPIO GPIOD
#define PINS_LEDBLUE_PORT PORTD
#define PINS_LEDBLUE_PIN 5U
/* red: PTA1 */
#define PINS_LEDRED_PIN 1
#define PINS_LEDRED_PORT PORTA
#define PINS_LEDRED_GPIO GPIOA
/* green: PTA2 */
#define PINS_LEDGREEN_PIN 2
#define PINS_LEDGREEN_PORT PORTA
#define PINS_LEDGREEN_GPIO GPIOA
#endif
#if PL_BOARD_IS_TINYK22
McuLED_Handle_t blueLED;
#else
McuLED_Handle_t redLED, blueLED, greenLED;
#endif
void LEDS_Deinit(void) {
#if PL_BOARD_IS_TINYK22
blueLED = McuLED_DeinitLed(blueLED);
#else
redLED = McuLED_DeinitLed(redLED);
greenLED = McuLED_DeinitLed(greenLED);
blueLED = McuLED_DeinitLed(blueLED);
#endif
}
void LEDS_Init(void) {
McuLED_Config_t config;
/* initialize LEDs */
McuLED_GetDefaultConfig(&config);
#if PL_BOARD_IS_TINYK22
CLOCK_EnableClock(kCLOCK_PortC); /* tinyK22 has LED on port D */
config.isLowActive = true;
config.hw.pin = PINS_LEDBLUE_PIN;
config.hw.port = PINS_LEDBLUE_PORT;
config.hw.gpio = PINS_LEDBLUE_GPIO;
blueLED = McuLED_InitLed(&config);
#else
CLOCK_EnableClock(kCLOCK_PortA); /* FRDM-K22 has LED on port A */
CLOCK_EnableClock(kCLOCK_PortD); /* FRDM-K22 has LED on port D */
config.isLowActive = true;
config.hw.pin = PINS_LEDRED_PIN;
config.hw.port = PINS_LEDRED_PORT;
config.hw.gpio = PINS_LEDRED_GPIO;
redLED = McuLED_InitLed(&config);
config.isLowActive = true;
config.hw.pin = PINS_LEDGREEN_PIN;
config.hw.port = PINS_LEDGREEN_PORT;
config.hw.gpio = PINS_LEDGREEN_GPIO;
greenLED = McuLED_InitLed(&config);
config.isLowActive = true;
config.hw.pin = PINS_LEDBLUE_PIN;
config.hw.port = PINS_LEDBLUE_PORT;
config.hw.gpio = PINS_LEDBLUE_GPIO;
blueLED = McuLED_InitLed(&config);
#endif
}