FastLED 3.10.8
Loading...
Searching...
No Matches
pin.h
Go to the documentation of this file.
1#pragma once
2
31
32#include "fl/stl/stdint.h"
33#include "fl/stl/noexcept.h"
34
35namespace fl {
36
37// ============================================================================
38// Pin Configuration Enums
39// ============================================================================
40
48
50enum class PinValue {
51 Low = 0,
52 High = 1
53};
54
67
68// ============================================================================
69// Function declarations (implementations in platform-specific .hpp files)
70// ============================================================================
71
75void pinMode(int pin, PinMode mode) FL_NO_EXCEPT;
76
80void digitalWrite(int pin, PinValue val) FL_NO_EXCEPT;
81
86
90u16 analogRead(int pin) FL_NO_EXCEPT;
91
95void analogWrite(int pin, u16 val) FL_NO_EXCEPT;
96
100void setPwm16(int pin, u16 val) FL_NO_EXCEPT;
101
105inline void analogWrite16(int pin, u16 val) FL_NO_EXCEPT {
106 setPwm16(pin, val);
107}
108
114
115// ============================================================================
116// PWM Frequency Control
117// ============================================================================
118
124int setPwmFrequency(int pin, u32 frequency_hz) FL_NO_EXCEPT;
125
129u32 getPwmFrequency(int pin) FL_NO_EXCEPT;
130
134int pwmEnd(int pin) FL_NO_EXCEPT;
135
136} // namespace fl
u8 u8 fract8 blur_amount FL_NO_EXCEPT
Definition blur.h:186
u32 getPwmFrequency(int pin) FL_NO_EXCEPT
Query the configured PWM frequency for a pin.
Definition pin.cpp.hpp:370
PinValue
Digital pin value.
Definition pin.h:50
@ Low
Logic low (0V / GND)
Definition pin.h:51
@ High
Logic high (3.3V / 5V, platform-dependent)
Definition pin.h:52
u16 analogRead(int pin) FL_NO_EXCEPT
Read analog value from pin.
void setAdcRange(AdcRange range) FL_NO_EXCEPT
Set ADC voltage range.
Definition pin.cpp.hpp:62
AdcRange
ADC voltage range configuration.
Definition pin.h:58
@ Range0_2V2
0-2.2V range (6dB on ESP32)
Definition pin.h:62
@ Range0_1V5
0-1.5V range (2.5dB on ESP32)
Definition pin.h:61
@ Default
Platform default (5V on AVR Uno, 3.3V on ESP32 w/ 11dB, etc.)
Definition pin.h:59
@ Range0_5V
0-5V range (DEFAULT on 5V AVR boards)
Definition pin.h:64
@ Range0_3V3
0-3.3V range (11dB on ESP32, VDDANA on 3.3V SAMD)
Definition pin.h:63
@ External
External reference voltage on AREF pin (AVR/SAMD only)
Definition pin.h:65
@ Range0_1V1
0-1.1V range (INTERNAL on AVR, 0dB on ESP32)
Definition pin.h:60
void analogWrite(int pin, u16 val) FL_NO_EXCEPT
Write analog value to pin (PWM)
Definition pin.cpp.hpp:243
void analogWrite16(int pin, u16 val) FL_NO_EXCEPT
Alias for setPwm16 - Set PWM duty cycle with 16-bit resolution.
Definition pin.h:105
int pwmEnd(int pin) FL_NO_EXCEPT
Release PWM channel and stop output on a pin.
Definition pin.cpp.hpp:380
int setPwmFrequency(int pin, u32 frequency_hz) FL_NO_EXCEPT
Set PWM frequency for a pin.
Definition pin.cpp.hpp:290
void digitalWrite(int pin, PinValue val) FL_NO_EXCEPT
Write digital value to pin.
Definition pin.cpp.hpp:51
PinValue digitalRead(int pin) FL_NO_EXCEPT
Read digital value from pin.
Definition pin.cpp.hpp:55
void setPwm16(int pin, u16 val) FL_NO_EXCEPT
Set PWM duty cycle with 16-bit resolution.
Definition pin.cpp.hpp:265
PinMode
Pin mode configuration.
Definition pin.h:42
@ Output
Digital output (push-pull)
Definition pin.h:44
@ Input
Digital input (high impedance)
Definition pin.h:43
@ InputPullup
Digital input with internal pull-up resistor.
Definition pin.h:45
@ InputPulldown
Digital input with internal pull-down resistor.
Definition pin.h:46
void pinMode(int pin, PinMode mode) FL_NO_EXCEPT
Set pin mode (input, output, pull-up, pull-down)
Definition pin.cpp.hpp:394
Base definition for an LED controller.
Definition crgb.hpp:179
#define FL_NO_EXCEPT