Files
lishanpi/bsp/device/led/led_driver.cpp
T
hm fc10ef2e10 Initial commit: LSPi (LiangShanPi) project
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
2026-04-26 16:24:42 +08:00

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];
}