~ruther/qmk_firmware

865a8f42a6128dfc09a24fe749b0d78d8c69b70e — Ryan 1 year, 2 months ago e198643
WS2812 bitbang: prefix for `NOP_FUDGE` define (#23110)

M keyboards/xelus/xs60/hotswap/config.h => keyboards/xelus/xs60/hotswap/config.h +1 -1
@@ 40,4 40,4 @@
#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF

// Bitbang WS2812
#define NOP_FUDGE 0.4
#define WS2812_BITBANG_NOP_FUDGE 0.4

M keyboards/xelus/xs60/soldered/config.h => keyboards/xelus/xs60/soldered/config.h +1 -1
@@ 42,4 42,4 @@
#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF

// Bitbang WS2812
#define NOP_FUDGE 0.4
#define WS2812_BITBANG_NOP_FUDGE 0.4

M platforms/chibios/drivers/ws2812_bitbang.c => platforms/chibios/drivers/ws2812_bitbang.c +10 -5
@@ 3,18 3,23 @@
#include "gpio.h"
#include "chibios_config.h"

// DEPRECATED - DO NOT USE
#if defined(NOP_FUDGE)
#    define WS2812_BITBANG_NOP_FUDGE NOP_FUDGE
#endif

/* Adapted from https://github.com/bigjosh/SimpleNeoPixelDemo/ */

#ifndef NOP_FUDGE
#ifndef WS2812_BITBANG_NOP_FUDGE
#    if defined(STM32F0XX) || defined(STM32F1XX) || defined(GD32VF103) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(WB32F3G71xx) || defined(WB32FQ95xx)
#        define NOP_FUDGE 0.4
#        define WS2812_BITBANG_NOP_FUDGE 0.4
#    else
#        if defined(RP2040)
#            error "Please use `vendor` WS2812 driver for RP2040"
#        else
#            error "NOP_FUDGE configuration required"
#            error "WS2812_BITBANG_NOP_FUDGE configuration required"
#        endif
#        define NOP_FUDGE 1 // this just pleases the compile so the above error is easier to spot
#        define WS2812_BITBANG_NOP_FUDGE 1 // this just pleases the compile so the above error is easier to spot
#    endif
#endif



@@ 33,7 38,7 @@
#endif

#define NUMBER_NOPS 6
#define CYCLES_PER_SEC (CPU_CLOCK / NUMBER_NOPS * NOP_FUDGE)
#define CYCLES_PER_SEC (CPU_CLOCK / NUMBER_NOPS * WS2812_BITBANG_NOP_FUDGE)
#define NS_PER_SEC (1000000000L) // Note that this has to be SIGNED since we want to be able to check for negative values of derivatives
#define NS_PER_CYCLE (NS_PER_SEC / CYCLES_PER_SEC)
#define NS_TO_CYCLES(n) ((n) / NS_PER_CYCLE)

Do not follow this link