FastLED 3.10.8
Loading...
Searching...
No Matches
pin_probe.cpp.hpp
Go to the documentation of this file.
1
4
6#include "platforms/pin_probe.h"
7
8namespace fl {
9
10const char* pinProbeSkipReason(int pin) FL_NO_EXCEPT {
11 return platforms::pinProbeSkipReason(pin);
12}
13
15 return platforms::pinProbeDriveSkipReason(pin);
16}
17
19 return pinProbeSkipReason(pin) != nullptr;
20}
21
23 u64 mask = 0;
24 for (int p = 0; p < 64; ++p) {
25 if (isPinUnsafeToProbe(p)) {
26 mask |= pinMaskBit(p);
27 }
28 }
29 return mask;
30}
31
32} // namespace fl
u8 u8 fract8 blur_amount FL_NO_EXCEPT
Definition blur.h:186
constexpr u64 pinMaskBit(int pin) FL_NO_EXCEPT
Bit for pin in a 64-bit pin mask; 0 when pin is outside [0, 64).
Definition pin_probe.h:20
u64 pinUnsafeForProbeMask() FL_NO_EXCEPT
Mask of pins 0..63 that isPinUnsafeToProbe rejects (0 = none).
const char * 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 * 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.
bool isPinUnsafeToProbe(int pin) FL_NO_EXCEPT
True when pinProbeSkipReason(pin) is non-null.
Base definition for an LED controller.
Definition crgb.hpp:179
Platform-neutral "may a pin probe touch this pin?" API.
fl::u64 u64
Definition stdint.h:220