From cc45baa811c1aed4c13ebe9b101883d9520dd7c6 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 23 Jun 2018 02:28:46 -0400 Subject: [PATCH] try out on B10 --- drivers/arm/ws2812.c | 22 +++++++++++----------- drivers/arm/ws2812.h | 6 +++--- keyboards/qwiic_hub/qwiic_hub.c | 4 ++-- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/arm/ws2812.c b/drivers/arm/ws2812.c index e2320ab8a8a..1c1e4effd3b 100644 --- a/drivers/arm/ws2812.c +++ b/drivers/arm/ws2812.c @@ -8,20 +8,20 @@ #include "ws2812.h" #include "stdlib.h" -static uint32_t *fb; +static uint8_t *fb; static int sLeds; static stm32_gpio_t *sPort; static uint32_t sMask; -uint32_t * dma_source; +uint16_t* dma_source; -void setColor(uint8_t color, uint32_t *buf,uint32_t mask){ +void setColor(uint8_t color, uint8_t *buf,uint32_t mask){ int i; for (i=0;i<8;i++){ buf[i]=((color<BSRR.H.set)); @@ -94,7 +94,7 @@ void ledDriverInit(int leds, stm32_gpio_t *port, uint32_t mask, uint32_t **o_fb) dmaStreamSetTransactionSize(STM32_DMA1_STREAM3, 1); dmaStreamSetMode( STM32_DMA1_STREAM3, STM32_DMA_CR_TEIE | - STM32_DMA_CR_DIR_M2P | STM32_DMA_CR_PSIZE_WORD | STM32_DMA_CR_MSIZE_WORD + STM32_DMA_CR_DIR_M2P | STM32_DMA_CR_PSIZE_BYTE | STM32_DMA_CR_MSIZE_BYTE | STM32_DMA_CR_CIRC | STM32_DMA_CR_PL(3)); // DMA stream 6, triggered by channel1 update event. reset output value late to indicate "1" bit to ws2812. // always triggers but no affect if dma stream 2 already change output value to 0 @@ -104,7 +104,7 @@ void ledDriverInit(int leds, stm32_gpio_t *port, uint32_t mask, uint32_t **o_fb) dmaStreamSetTransactionSize(STM32_DMA1_STREAM6, 1); dmaStreamSetMode( STM32_DMA1_STREAM6, - STM32_DMA_CR_DIR_M2P | STM32_DMA_CR_PSIZE_WORD | STM32_DMA_CR_MSIZE_WORD + STM32_DMA_CR_DIR_M2P | STM32_DMA_CR_PSIZE_BYTE | STM32_DMA_CR_MSIZE_BYTE | STM32_DMA_CR_CIRC | STM32_DMA_CR_PL(3)); pwmStart(&PWMD2, &pwmc2); pwmStart(&PWMD3, &pwmc3); @@ -137,7 +137,7 @@ void ledDriverWaitCycle(void){ while (PWMD2.tim->CNT < 90 * sLeds * 24 / 90){chThdSleepMicroseconds(1);}; } -void testPatternFB(uint32_t *fb){ +void testPatternFB(uint8_t *fb){ int i; Color tmpC = {rand()%256, rand()%256, rand()%256}; for (i=0;i