mirror of
https://git.intern.spaceteamaachen.de/ALPAKA/sta-core.git
synced 2025-06-12 01:25:59 +00:00
37 lines
822 B
C++
37 lines
822 B
C++
#include <sta/raspi/gpio_pin.hpp>
|
|
#ifdef STA_RASPI_GPIO_ENABLED
|
|
|
|
#include <sta/assert.hpp>
|
|
#include <sta/lang.hpp>
|
|
|
|
namespace sta
|
|
{
|
|
RaspiGpioPin::RaspiGpioPin(uint8_t pin, GpioMode mode) : pin_{pin}, mode_{mode}
|
|
{
|
|
pinMode(pin, mode == GpioMode::GPIO_INPUT ? INPUT : OUTPUT);
|
|
}
|
|
|
|
void RaspiGpioPin::setState(GpioPinState state)
|
|
{
|
|
digitalWrite(pin_, state == GpioPinState::GPIO_LOW ? LOW : HIGH);
|
|
}
|
|
|
|
DummyGpioPin::DummyGpioPin() : RaspiGpioPin { -1 , GpioMode::GPIO_INPUT }
|
|
{
|
|
|
|
}
|
|
|
|
DummyGpioPin::setState(GpioPinState state)
|
|
{
|
|
// If this gets called, something is wrong!
|
|
STA_UNREACHABLE();
|
|
}
|
|
|
|
static DummyGpioPin dummyGpio;
|
|
|
|
|
|
RaspiGpioPin * RaspiGpioPin::DUMMY_GPIO = &dummyGpio;
|
|
} // namespace sta
|
|
|
|
|
|
#endif // STA_ARDUINO_GPIO_ENABLED
|