Merge pull request #2102 from dhalbert/4.x-dotstar-fix
Fix status DotStar writes: fixes DotStar issues on PyRulers
This commit is contained in:
commit
67d2e888c3
@ -39,7 +39,10 @@ static digitalio_digitalinout_obj_t status_neopixel;
|
|||||||
|
|
||||||
#if defined(MICROPY_HW_APA102_MOSI) && defined(MICROPY_HW_APA102_SCK)
|
#if defined(MICROPY_HW_APA102_MOSI) && defined(MICROPY_HW_APA102_SCK)
|
||||||
uint8_t rgb_status_brightness = 255;
|
uint8_t rgb_status_brightness = 255;
|
||||||
static uint8_t status_apa102_color[12] = {0, 0, 0, 0, 0xff, 0, 0, 0};
|
|
||||||
|
#define APA102_BUFFER_LENGTH 12
|
||||||
|
static uint8_t status_apa102_color[APA102_BUFFER_LENGTH] = {0, 0, 0, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0xff, 0xff};
|
||||||
|
|
||||||
#ifdef CIRCUITPY_BITBANG_APA102
|
#ifdef CIRCUITPY_BITBANG_APA102
|
||||||
#include "shared-bindings/bitbangio/SPI.h"
|
#include "shared-bindings/bitbangio/SPI.h"
|
||||||
#include "shared-module/bitbangio/types.h"
|
#include "shared-module/bitbangio/types.h"
|
||||||
@ -104,10 +107,12 @@ void rgb_led_status_init() {
|
|||||||
apa102_sck_in_use = false;
|
apa102_sck_in_use = false;
|
||||||
#ifdef CIRCUITPY_BITBANG_APA102
|
#ifdef CIRCUITPY_BITBANG_APA102
|
||||||
shared_module_bitbangio_spi_try_lock(&status_apa102);
|
shared_module_bitbangio_spi_try_lock(&status_apa102);
|
||||||
shared_module_bitbangio_spi_configure(&status_apa102, 100000, 0, 1, 8);
|
// Use 1MHz for clock rate. Some APA102's are spec'd 800kHz-1200kHz,
|
||||||
|
// though many can run much faster. bitbang will probably run slower.
|
||||||
|
shared_module_bitbangio_spi_configure(&status_apa102, 1000000, 0, 0, 8);
|
||||||
#else
|
#else
|
||||||
common_hal_busio_spi_try_lock(&status_apa102);
|
common_hal_busio_spi_try_lock(&status_apa102);
|
||||||
common_hal_busio_spi_configure(&status_apa102, 100000, 0, 1, 8);
|
common_hal_busio_spi_configure(&status_apa102, 1000000, 0, 0, 8);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -186,9 +191,9 @@ void new_status_color(uint32_t rgb) {
|
|||||||
status_apa102_color[7] = (rgb_adjusted >> 16) & 0xff;
|
status_apa102_color[7] = (rgb_adjusted >> 16) & 0xff;
|
||||||
|
|
||||||
#ifdef CIRCUITPY_BITBANG_APA102
|
#ifdef CIRCUITPY_BITBANG_APA102
|
||||||
shared_module_bitbangio_spi_write(&status_apa102, status_apa102_color, 8);
|
shared_module_bitbangio_spi_write(&status_apa102, status_apa102_color, APA102_BUFFER_LENGTH);
|
||||||
#else
|
#else
|
||||||
common_hal_busio_spi_write(&status_apa102, status_apa102_color, 8);
|
common_hal_busio_spi_write(&status_apa102, status_apa102_color, APA102_BUFFER_LENGTH);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -229,11 +234,11 @@ void temp_status_color(uint32_t rgb) {
|
|||||||
if (apa102_mosi_in_use || apa102_sck_in_use) {
|
if (apa102_mosi_in_use || apa102_sck_in_use) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
uint8_t colors[12] = {0, 0, 0, 0, 0xff, rgb_adjusted & 0xff, (rgb_adjusted >> 8) & 0xff, (rgb_adjusted >> 16) & 0xff, 0x0, 0x0, 0x0, 0x0};
|
uint8_t colors[APA102_BUFFER_LENGTH] = {0, 0, 0, 0, 0xff, rgb_adjusted & 0xff, (rgb_adjusted >> 8) & 0xff, (rgb_adjusted >> 16) & 0xff, 0xff, 0xff, 0xff, 0xff};
|
||||||
#ifdef CIRCUITPY_BITBANG_APA102
|
#ifdef CIRCUITPY_BITBANG_APA102
|
||||||
shared_module_bitbangio_spi_write(&status_apa102, colors, 12);
|
shared_module_bitbangio_spi_write(&status_apa102, colors, APA102_BUFFER_LENGTH);
|
||||||
#else
|
#else
|
||||||
common_hal_busio_spi_write(&status_apa102, colors, 12);
|
common_hal_busio_spi_write(&status_apa102, colors, APA102_BUFFER_LENGTH);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if defined(CP_RGB_STATUS_LED)
|
#if defined(CP_RGB_STATUS_LED)
|
||||||
@ -265,9 +270,9 @@ void clear_temp_status() {
|
|||||||
#endif
|
#endif
|
||||||
#if defined(MICROPY_HW_APA102_MOSI) && defined(MICROPY_HW_APA102_SCK)
|
#if defined(MICROPY_HW_APA102_MOSI) && defined(MICROPY_HW_APA102_SCK)
|
||||||
#ifdef CIRCUITPY_BITBANG_APA102
|
#ifdef CIRCUITPY_BITBANG_APA102
|
||||||
shared_module_bitbangio_spi_write(&status_apa102, status_apa102_color, 8);
|
shared_module_bitbangio_spi_write(&status_apa102, status_apa102_color, APA102_BUFFER_LENGTH);
|
||||||
#else
|
#else
|
||||||
common_hal_busio_spi_write(&status_apa102, status_apa102_color, 8);
|
common_hal_busio_spi_write(&status_apa102, status_apa102_color, APA102_BUFFER_LENGTH);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if defined(CP_RGB_STATUS_LED)
|
#if defined(CP_RGB_STATUS_LED)
|
||||||
|
Loading…
Reference in New Issue
Block a user