51 lines
996 B
C++

/*
* LED.cpp
*
* Created on: Jun 25, 2023
* Author: Carst
*/
#include <stm32g0xx_ll_gpio.h>
#include "STM32G071KBT6.hpp"
#include "LED.hpp"
namespace ElektronischeLast
{
LED::LED(std::uint32_t interval)
{
this->interval = interval;
}
void LED::init(void)
{
LL_GPIO_InitTypeDef GPIO_InitStruct = {
.Pin = LL_GPIO_PIN_10,
.Mode = LL_GPIO_MODE_OUTPUT,
.Speed = LL_GPIO_SPEED_FREQ_LOW,
.OutputType = LL_GPIO_OUTPUT_PUSHPULL,
.Pull = LL_GPIO_PULL_NO,
};
LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_6);
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
this->last_toggle = systick;
}
void LED::blink(void)
{
if((systick - this->last_toggle) > this->interval)
{
this->toggle();
this->last_toggle = systick;
}
}
void LED::toggle(void)
{
LL_GPIO_TogglePin(GPIOA, LL_GPIO_PIN_10);
}
}