SLS/Software/Core/Src/led.c

45 lines
1.1 KiB
C

#include <stdint.h>
#include "farbe.h"
#include "stm32f042x6.h"
#include "stm32f0xx_hal.h"
#include "stm32f0xx_hal_tim.h"
void led_init(TIM_HandleTypeDef* htim) {
HAL_TIM_PWM_Start(htim, TIM_CHANNEL_1);
HAL_TIM_PWM_Start(htim, TIM_CHANNEL_2);
HAL_TIM_PWM_Start(htim, TIM_CHANNEL_3);
int32_t color = SLSERROR;
int32_t Blue = color & 0x000000FF;
int32_t Green = (color & 0x0000FF00) >> 8;
int32_t Red = (color & 0x00FF0000) >> 16;
TIM2->CCR1 = Green;
TIM2->CCR2 = Red;
TIM2->CCR3 = Blue;
HAL_Delay(1000);
}
void blink(TIM_HandleTypeDef* htim, int32_t color) {
int32_t Blue = color & 0x000000FF;
int32_t Green = (color & 0x0000FF00) >> 8;
int32_t Red = (color & 0x00FF0000) >> 16;
TIM2->CCR1 = Green;
TIM2->CCR2 = Red;
TIM2->CCR3 = Blue;
HAL_TIM_PWM_Stop(htim, TIM_CHANNEL_1);
HAL_TIM_PWM_Stop(htim, TIM_CHANNEL_2);
HAL_TIM_PWM_Stop(htim, TIM_CHANNEL_3);
HAL_Delay(500);
HAL_TIM_PWM_Start(htim, TIM_CHANNEL_1);
HAL_TIM_PWM_Start(htim, TIM_CHANNEL_2);
HAL_TIM_PWM_Start(htim, TIM_CHANNEL_3);
HAL_Delay(500);
}