FastLED 3.10.8
Loading...
Searching...
No Matches
pin_probe.h File Reference

Detailed Description

Platform-neutral "may a pin probe touch this pin?" API.

A pin probe (e.g. AutoResearch's jumper discovery) drives a pin OUTPUT LOW/HIGH, reads others with INPUT_PULLUP, and leaves them in INPUT. On some pins that resets or locks up the board, or kills the host link: SPI flash/PSRAM pads, flash power, the console UART and native USB. The platform owns that list; callers only ask.

Platforms without such pins report none: every pin is safe and drivable.

Definition in file pin_probe.h.

#include "fl/stl/noexcept.h"
#include "fl/stl/stdint.h"
+ Include dependency graph for pin_probe.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  fl
 Base definition for an LED controller.
 

Functions

bool fl::isPinUnsafeToProbe (int pin) FL_NO_EXCEPT
 True when pinProbeSkipReason(pin) is non-null.
 
constexpr u64 fl::pinMaskBit (int pin) FL_NO_EXCEPT
 Bit for pin in a 64-bit pin mask; 0 when pin is outside [0, 64).
 
const char * fl::pinProbeDriveSkipReason (int pin) FL_NO_EXCEPT
 Why a probe may read pin but must not drive it, or nullptr when it may drive it.
 
const char * fl::pinProbeSkipReason (int pin) FL_NO_EXCEPT
 Why a probe must not touch pin at all (no pinMode, read or write), or nullptr when it may.
 
u64 fl::pinUnsafeForProbeMask () FL_NO_EXCEPT
 Mask of pins 0..63 that isPinUnsafeToProbe rejects (0 = none).