24#ifndef __INC_FASTSPI_H
25#define __INC_FASTSPI_H
35#include "platforms/shared/spi_bitbang/generic_software_spi.h"
37#include "platforms/cpu_frequency.h"
42#include "platforms/spi_device_proxy.h"
47#include "platforms/spi_output_template.h"
72#if defined(FASTLED_TEENSY3) && (F_CPU > 48000000)
74#define FL_DATA_RATE_MHZ(X) (((48000000L / 1000000L) / X))
75#define FL_DATA_RATE_KHZ(X) (((48000000L / 1000L) / X))
76#define FL_TO_CLOCK_DIVIDER(FREQ_MHZ, CPU_FREQ_MHZ) ((CPU_FREQ_MHZ) / (FREQ_MHZ))
78#elif defined(FASTLED_TEENSY4) || defined(ESP32) || (defined(ESP8266) && defined(FASTLED_ALL_PINS_HARDWARE_SPI)) || defined(FASTLED_STUB_IMPL)
81#define FL_DATA_RATE_MHZ(X) (1000000 * (X))
82#define FL_DATA_RATE_KHZ(X) (1000 * (X))
83#define FL_TO_CLOCK_DIVIDER(FREQ_MHZ, CPU_FREQ_MHZ) ((CPU_FREQ_MHZ) / (FREQ_MHZ))
89#define FL_DATA_RATE_MHZ(X) ((GET_CPU_FREQUENCY() / 1000000L) / X)
90#define FL_DATA_RATE_KHZ(X) ((GET_CPU_FREQUENCY() / 1000L) / X)
91#define FL_TO_CLOCK_DIVIDER(FREQ_MHZ, CPU_FREQ_MHZ) ((CPU_FREQ_MHZ) / (FREQ_MHZ))
95#define DATA_RATE_MHZ FL_DATA_RATE_MHZ
96#define DATA_RATE_KHZ FL_DATA_RATE_KHZ
106template<fl::u8 _DATA_PIN, fl::u8 _CLOCK_PIN, fl::u32 _SPI_CLOCK_DIVIDER>
107class SoftwareSPIOutput :
public fl::GenericSoftwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER> {};
Software SPI output (generic cross-platform bit-banging) NOTE: This is NOT in the fl namespace per fa...
Data types and constants used by SPI interfaces.
Internal FastLED header for implementation files.
Fast, efficient 8-bit math functions specifically designed for high-performance LED programming.