mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-02 13:27:32 +08:00
Jpo2023-Chimera-WS2812 (#3188)
This commit is contained in:
@@ -40,6 +40,14 @@
|
|||||||
|
|
||||||
<module name="nav" type="rover_base"/>
|
<module name="nav" type="rover_base"/>
|
||||||
<module name="guidance" type="rover_holonomic"/>
|
<module name="guidance" type="rover_holonomic"/>
|
||||||
|
|
||||||
|
<!--Info: Tawaki(Auxa1):STM32_PWM_USE_TIM5, Apogee: PPMin, Chimera(Aux7/PC6) : TIM8 ch1 -->
|
||||||
|
<module name="light_scheduler">
|
||||||
|
<configure name="WS2812_TIM" value="TIM8"/>
|
||||||
|
<define name="WS2812_NB_LEDS" value="32"/>
|
||||||
|
<define name="WS2812_SEQUENCE" value="1"/>
|
||||||
|
</module>
|
||||||
|
|
||||||
</firmware>
|
</firmware>
|
||||||
|
|
||||||
<servos driver="OSTRICH">
|
<servos driver="OSTRICH">
|
||||||
|
|||||||
@@ -575,5 +575,19 @@
|
|||||||
#define ActuatorsDefaultInit() ActuatorsPwmInit()
|
#define ActuatorsDefaultInit() ActuatorsPwmInit()
|
||||||
#define ActuatorsDefaultCommit() ActuatorsPwmCommit()
|
#define ActuatorsDefaultCommit() ActuatorsPwmCommit()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For WS2812
|
||||||
|
*/
|
||||||
|
#define WS2812D1_GPIO GPIOC
|
||||||
|
#define WS2812D1_PIN GPIO6
|
||||||
|
#define WS2812D1_AF 3
|
||||||
|
#define WS2812D1_CFG_DEF { \
|
||||||
|
.dma_stream = STM32_PWM8_UP_DMA_STREAM, \
|
||||||
|
.dma_channel = STM32_PWM8_UP_DMA_CHANNEL, \
|
||||||
|
.dma_priority = STM32_PWM8_UP_DMA_PRIORITY, \
|
||||||
|
.pwm_channel = 0, \
|
||||||
|
.pwmp = &PWMD8 \
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* CONFIG_CHIMERA_1_00_H */
|
#endif /* CONFIG_CHIMERA_1_00_H */
|
||||||
|
|
||||||
|
|||||||
@@ -317,7 +317,9 @@
|
|||||||
#define STM32_PWM_USE_TIM4 TRUE
|
#define STM32_PWM_USE_TIM4 TRUE
|
||||||
#endif
|
#endif
|
||||||
#define STM32_PWM_USE_TIM5 FALSE
|
#define STM32_PWM_USE_TIM5 FALSE
|
||||||
|
#ifndef STM32_PWM_USE_TIM8
|
||||||
#define STM32_PWM_USE_TIM8 FALSE
|
#define STM32_PWM_USE_TIM8 FALSE
|
||||||
|
#endif
|
||||||
#define STM32_PWM_USE_TIM9 FALSE
|
#define STM32_PWM_USE_TIM9 FALSE
|
||||||
#define STM32_PWM_USE_TIM10 FALSE
|
#define STM32_PWM_USE_TIM10 FALSE
|
||||||
#define STM32_PWM_USE_TIM11 FALSE
|
#define STM32_PWM_USE_TIM11 FALSE
|
||||||
@@ -328,6 +330,11 @@
|
|||||||
#define STM32_PWM_USE_TIM16 FALSE
|
#define STM32_PWM_USE_TIM16 FALSE
|
||||||
#define STM32_PWM_USE_TIM17 FALSE
|
#define STM32_PWM_USE_TIM17 FALSE
|
||||||
|
|
||||||
|
#define STM32_PWM8_UP_DMA_STREAM STM32_DMA_STREAM_ID(2, 1)
|
||||||
|
#define STM32_PWM8_UP_DMA_CHANNEL 7
|
||||||
|
#define STM32_PWM8_UP_DMA_IRQ_PRIORITY 6
|
||||||
|
#define STM32_PWM8_UP_DMA_PRIORITY 2
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* RTC driver system settings.
|
* RTC driver system settings.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -41,9 +41,19 @@ void light_scheduler_periodic(void)
|
|||||||
{
|
{
|
||||||
uint32_t n, s0;
|
uint32_t n, s0;
|
||||||
for (n = 0; n < WS2812_NB_LEDS; n++) {
|
for (n = 0; n < WS2812_NB_LEDS; n++) {
|
||||||
|
if (WS2812_NB_LEDS == 32) {
|
||||||
|
if (n<=7) light_ws2812_arch_set(n, 0,255,0); // LEFT = GREEN
|
||||||
|
else if (n<=15)
|
||||||
|
light_ws2812_arch_set(n, 0,0,255); // BACK = BLUE
|
||||||
|
else if (n<=23)
|
||||||
|
light_ws2812_arch_set(n, 255,0,0); // RIGHT = RED
|
||||||
|
else
|
||||||
|
light_ws2812_arch_set(n, 255,255,255); // FRONT = WHITE
|
||||||
|
} else {
|
||||||
s0 = s + 10 * n;
|
s0 = s + 10 * n;
|
||||||
light_ws2812_arch_set(n, s0 % 255, (s0 + 85) % 255, (s0 + 170) % 255);
|
light_ws2812_arch_set(n, s0 % 255, (s0 + 85) % 255, (s0 + 170) % 255);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
s += 10;
|
s += 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user