fc10ef2e10
GD32F470ZGT6 based project with full peripheral support: - SDRAM (W9825G6KH) via EXMC - LCD NT35510 (480x800) via EXMC NOR/PSRAM - Flash (W25Q64) via SPI - UART (USART0) debug console - LED indicators - CMSIS-DAP debug interface - CMake + ARM GCC toolchain build system
61 lines
861 B
C++
61 lines
861 B
C++
#include "led_driver.h"
|
|
|
|
Led::Led(GpioBus &bus, uint32_t pin)
|
|
: pin_(bus, pin)
|
|
{
|
|
}
|
|
|
|
RetCode Led::init()
|
|
{
|
|
pin_.init();
|
|
off();
|
|
return RET_OK;
|
|
}
|
|
|
|
void Led::on()
|
|
{
|
|
pin_.set();
|
|
}
|
|
|
|
void Led::off()
|
|
{
|
|
pin_.reset();
|
|
}
|
|
|
|
void Led::toggle()
|
|
{
|
|
pin_.toggle();
|
|
}
|
|
|
|
LedManager &LedManager::instance()
|
|
{
|
|
static LedManager mgr;
|
|
return mgr;
|
|
}
|
|
|
|
LedManager::LedManager()
|
|
{
|
|
}
|
|
|
|
RetCode LedManager::init_all()
|
|
{
|
|
RetCode ret;
|
|
ret = bus_a_.init(); if (ret != RET_OK) return ret;
|
|
ret = bus_d_.init(); if (ret != RET_OK) return ret;
|
|
ret = bus_e_.init(); if (ret != RET_OK) return ret;
|
|
ret = bus_g_.init(); if (ret != RET_OK) return ret;
|
|
|
|
for (auto *l : leds_)
|
|
{
|
|
ret = l->init();
|
|
if (ret != RET_OK) return ret;
|
|
}
|
|
|
|
return RET_OK;
|
|
}
|
|
|
|
Led &LedManager::led(uint8_t index)
|
|
{
|
|
return *leds_[index];
|
|
}
|