Skip to content

Commit

Permalink
Added LED Strip.
Browse files Browse the repository at this point in the history
  • Loading branch information
richardclli committed Nov 20, 2023
1 parent c0c2de9 commit 5231ab3
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 0 deletions.
3 changes: 3 additions & 0 deletions radio/src/targets/pl18/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ add_definitions(-DPCBPL18 -DPCBFLYSKY)
add_definitions(-DBATTERY_CHARGE)
add_definitions(-DSOFTWARE_VOLUME)
add_definitions(-DSPI_FLASH)
add_definitions(-DSTM32_SUPPORT_32BIT_TIMERS)

if(PCBREV STREQUAL PL18EV)
set(FLAVOUR pl18ev)
Expand Down Expand Up @@ -152,6 +153,8 @@ set(FIRMWARE_SRC
targets/common/arm/stm32/dma2d.cpp
targets/common/arm/stm32/spi_flash.cpp
targets/common/arm/stm32/diskio_spi_flash.cpp
targets/common/arm/stm32/stm32_ws2812.cpp
boards/generic_stm32/rgb_leds.cpp
drivers/frftl.cpp
)

Expand Down
15 changes: 15 additions & 0 deletions radio/src/targets/pl18/board.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@

#include "stm32_adc.h"

#include "stm32_ws2812.h"
#include "boards/generic_stm32/rgb_leds.h"

#include "board.h"
#include "boards/generic_stm32/module_ports.h"

Expand Down Expand Up @@ -163,6 +166,18 @@ void boardInit()
touchPanelInit();
usbInit();

#if defined(LED_STRIP_GPIO)
extern const stm32_pulse_timer_t _led_timer;

ws2812_init(&_led_timer, LED_STRIP_LENGTH);
for (uint8_t i = 0; i < LED_STRIP_LENGTH; i++) {
ws2812_set_color(i, 0, 0, 50);
}
ws2812_update(&_led_timer);

// stm32_pulse_set_cmp_val(&_led_timer, 998); // 998us
#endif

uint32_t press_start = 0;
uint32_t press_end = 0;

Expand Down
15 changes: 15 additions & 0 deletions radio/src/targets/pl18/hal.h
Original file line number Diff line number Diff line change
Expand Up @@ -555,6 +555,21 @@
#define FLYSKY_HALL_DMA_Stream_RX LL_DMA_STREAM_2
#define FLYSKY_HALL_DMA_Stream_TX LL_DMA_STREAM_4

// LED Strip
#define LED_STRIP_LENGTH 4
#define LED_STRIP_GPIO GPIOH
#define LED_STRIP_GPIO_PIN_DATA LL_GPIO_PIN_12 // PH.12 / TIM5_CH3
#define LED_STRIP_GPIO_PIN_AF LL_GPIO_AF_2 // TIM3/4/5
#define LED_STRIP_TIMER TIM5
#define LED_STRIP_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH3
#define LED_STRIP_TIMER_DMA DMA1
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMA_CHANNEL_6
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_0
#define LED_STRIP_TIMER_DMA_IRQn DMA1_Stream0_IRQn
#define LED_STRIP_TIMER_DMA_IRQHandler DMA1_Stream0_IRQHandler
#define LED_STRIP_REFRESH_PERIOD 50 //ms

// Internal Module
#if defined(RADIO_PL18)
#define INTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOF | RCC_AHB1Periph_GPIOI | RCC_AHB1Periph_DMA1)
Expand Down

0 comments on commit 5231ab3

Please sign in to comment.