summaryrefslogtreecommitdiff
path: root/.pio/libdeps/esp32-s3-n16r8/Adafruit NeoPixel/psoc6.c
diff options
context:
space:
mode:
Diffstat (limited to '.pio/libdeps/esp32-s3-n16r8/Adafruit NeoPixel/psoc6.c')
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit NeoPixel/psoc6.c87
1 files changed, 87 insertions, 0 deletions
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