FastLED 3.9.15
Loading...
Searching...
No Matches
fastspi.h File Reference

Detailed Description

Serial peripheral interface (SPI) definitions per platform.

ARCHITECTURE: This file provides:

  1. Common SPI macros and utilities (DATA_RATE_MHZ, DATA_RATE_KHZ)
  2. SoftwareSPIOutput template (generic bit-banging SPI)
  3. Includes all platform-specific implementations via dispatch headers

IMPORTANT: The SPIOutput template is NOT defined in this file. Instead, it is defined by platform-specific spi_output_template.h files:

  • Each platform (esp32, teensy, nrf52, etc.) has its own platform directory
  • Each platform directory contains spi_output_template.h
  • The dispatch header (platforms/spi_output_template.h) selects the right one
  • This approach centralizes platform logic in platform-specific directories

The include pattern is: #include "fastspi.h" // Includes this file // At this point, SoftwareSPIOutput is available // SPIOutput is defined (by whichever platform-specific template was included)

Definition in file fastspi.h.

#include "controller.h"
#include "lib8tion.h"
#include "fastspi_types.h"
#include "platforms/shared/spi_bitbang/generic_software_spi.h"
#include "fl/stl/int.h"
#include "platforms/cpu_frequency.h"
#include "platforms/spi_device_proxy.h"
#include "platforms/spi_output_template.h"
#include "fl/system/fastled.h"
+ Include dependency graph for fastspi.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  SoftwareSPIOutput< _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER >
 Software SPI output (generic cross-platform bit-banging) NOTE: This is NOT in the fl namespace per fastspi.h design requirements. More...
 

Macros

#define __INC_FASTSPI_H
 
#define DATA_RATE_KHZ   FL_DATA_RATE_KHZ
 
#define DATA_RATE_MHZ   FL_DATA_RATE_MHZ
 
#define FL_DATA_RATE_KHZ(X)
 
#define FL_DATA_RATE_MHZ(X)
 
#define FL_TO_CLOCK_DIVIDER(FREQ_MHZ, CPU_FREQ_MHZ)