FastLED 3.9.15
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
34namespace fl {
35
36// ============================================================================
37// Pin Configuration Enums
38// ============================================================================
39
47
49enum class PinValue {
50 Low = 0,
51 High = 1
52};
53
66
67// ============================================================================
68// Function declarations (implementations in platform-specific .hpp files)
69// ============================================================================
70
74void pinMode(int pin, PinMode mode);
75
79void digitalWrite(int pin, PinValue val);
80
84PinValue digitalRead(int pin);
85
89u16 analogRead(int pin);
90
94void analogWrite(int pin, u16 val);
95
99void setPwm16(int pin, u16 val);
100
104inline void analogWrite16(int pin, u16 val) {
105 setPwm16(pin, val);
106}
107
112void setAdcRange(AdcRange range);
113
114// ============================================================================
115// PWM Frequency Control
116// ============================================================================
117
123int setPwmFrequency(int pin, u32 frequency_hz);
124
128u32 getPwmFrequency(int pin);
129
133int pwmEnd(int pin);
134
135} // namespace fl
void setAdcRange(AdcRange range)
Set ADC voltage range.
Definition pin.cpp.hpp:63
u32 getPwmFrequency(int pin)
Query the configured PWM frequency for a pin.
Definition pin.cpp.hpp:354
void setPwm16(int pin, u16 val)
Set PWM duty cycle with 16-bit resolution.
Definition pin.cpp.hpp:249
PinValue
Digital pin value.
Definition pin.h:49
@ Low
Logic low (0V / GND)
Definition pin.h:50
@ High
Logic high (3.3V / 5V, platform-dependent)
Definition pin.h:51
int setPwmFrequency(int pin, u32 frequency_hz)
Set PWM frequency for a pin.
Definition pin.cpp.hpp:274
int pwmEnd(int pin)
Release PWM channel and stop output on a pin.
Definition pin.cpp.hpp:364
AdcRange
ADC voltage range configuration.
Definition pin.h:57
@ Range0_2V2
0-2.2V range (6dB on ESP32)
Definition pin.h:61
@ Range0_1V5
0-1.5V range (2.5dB on ESP32)
Definition pin.h:60
@ Default
Platform default (5V on AVR Uno, 3.3V on ESP32 w/ 11dB, etc.)
Definition pin.h:58
@ Range0_5V
0-5V range (DEFAULT on 5V AVR boards)
Definition pin.h:63
@ Range0_3V3
0-3.3V range (11dB on ESP32, VDDANA on 3.3V SAMD)
Definition pin.h:62
@ External
External reference voltage on AREF pin (AVR/SAMD only)
Definition pin.h:64
@ Range0_1V1
0-1.1V range (INTERNAL on AVR, 0dB on ESP32)
Definition pin.h:59
void pinMode(int pin, PinMode mode)
Set pin mode (input, output, pull-up, pull-down)
Definition pin.cpp.hpp:378
PinValue digitalRead(int pin)
Read digital value from pin.
Definition pin.cpp.hpp:55
void analogWrite(int pin, u16 val)
Write analog value to pin (PWM)
Definition pin.cpp.hpp:227
void digitalWrite(int pin, PinValue val)
Write digital value to pin.
Definition pin.cpp.hpp:51
void analogWrite16(int pin, u16 val)
Alias for setPwm16 - Set PWM duty cycle with 16-bit resolution.
Definition pin.h:104
u16 analogRead(int pin)
Read analog value from pin.
Definition pin.cpp.hpp:59
PinMode
Pin mode configuration.
Definition pin.h:41
@ Output
Digital output (push-pull)
Definition pin.h:43
@ Input
Digital input (high impedance)
Definition pin.h:42
@ InputPullup
Digital input with internal pull-up resistor.
Definition pin.h:44
@ InputPulldown
Digital input with internal pull-down resistor.
Definition pin.h:45
Base definition for an LED controller.
Definition crgb.hpp:179