From 3120783000d0025b183b0397acaa8b769499eb38 Mon Sep 17 00:00:00 2001 From: krolyxon Date: Mon, 8 Jun 2026 23:10:46 +0530 Subject: Initial gh-pages firmware hosting --- .../esp32-s3-n16r8/Adafruit NeoPixel/psoc6.c | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 .pio/libdeps/esp32-s3-n16r8/Adafruit NeoPixel/psoc6.c (limited to '.pio/libdeps/esp32-s3-n16r8/Adafruit NeoPixel/psoc6.c') diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit NeoPixel/psoc6.c b/.pio/libdeps/esp32-s3-n16r8/Adafruit NeoPixel/psoc6.c new file mode 100644 index 0000000..6db0348 --- /dev/null +++ b/.pio/libdeps/esp32-s3-n16r8/Adafruit NeoPixel/psoc6.c @@ -0,0 +1,87 @@ +#if defined(ARDUINO_ARCH_PSOC6) + +#include "Arduino.h" +#include "cy_syslib.h" +#include "cyhal_gpio.h" +#include "cyhal_system.h" + +void psoc6_show(uint8_t pin, uint8_t *pixels, uint32_t numBytes, + bool is800KHZ) { + if (!pixels) + return; + noInterrupts(); + GPIO_PRT_Type *base = CYHAL_GET_PORTADDR(mapping_gpio_pin[pin]); + uint32_t pinNum = CYHAL_GET_PIN(mapping_gpio_pin[pin]); + if (is800KHZ) { + for (uint16_t i = 0; i < numBytes; i++) { + uint8_t b = pixels[i]; + for (uint8_t j = 0; j < 8; j++) { + bool bit = (b & 0x80) != 0; + b <<= 1; + switch (bit) { + case 1: + // Send a 1-bit + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 0); + Cy_GPIO_Write(base, pinNum, 0); + break; + case 0: + // Send a 0-bit + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 0); + Cy_GPIO_Write(base, pinNum, 0); + Cy_GPIO_Write(base, pinNum, 0); + Cy_GPIO_Write(base, pinNum, 0); + Cy_GPIO_Write(base, pinNum, 0); + break; + } + } + } + } else { + for (size_t i = 0; i < numBytes; i++) { + uint8_t b = pixels[i]; + for (uint8_t j = 0; j < 8; j++) { + bool bit = (b & 0x80) != 0; + b <<= 1; + switch (bit) { + case 1: + // Send a 1-bit + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 0); + Cy_GPIO_Write(base, pinNum, 0); + Cy_GPIO_Write(base, pinNum, 0); + break; + case 0: + // Send a 0-bit + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 1); + Cy_GPIO_Write(base, pinNum, 0); + Cy_GPIO_Write(base, pinNum, 0); + Cy_GPIO_Write(base, pinNum, 0); + Cy_GPIO_Write(base, pinNum, 0); + Cy_GPIO_Write(base, pinNum, 0); + Cy_GPIO_Write(base, pinNum, 0); + Cy_GPIO_Write(base, pinNum, 0); + break; + } + } + } + } + interrupts(); + delayMicroseconds(50); + return; +} +#endif \ No newline at end of file -- cgit v1.2.3