#include "pxt.h" #if MICROBIT_CODAL #include "neopixel.h" #else extern "C" void neopixel_send_buffer_core(DevicePin *pin, const uint8_t *ptr, int numBytes); __attribute__((noinline)) static void neopixel_send_buffer(DevicePin &pin, const uint8_t *ptr, int numBytes) { // setup pin as digital pin.setDigitalValue(0); __disable_irq(); neopixel_send_buffer_core(&pin, ptr, numBytes); __enable_irq(); } #endif namespace light { /** * Sends a color buffer to a light strip **/ //% advanced=true //% void sendWS2812Buffer(Buffer buf, int pin) { if (!buf || !buf->length) return; neopixel_send_buffer(*pxt::getPin(pin), buf->data, buf->length); } /** * Sets the light mode of a pin **/ //% advanced=true //% void setMode(int pin, int mode) { } } // namespace light