mirror of
https://github.com/esphome/esphome.git
synced 2025-09-14 17:22:20 +01:00
Update mcp4461_output.cpp
This commit is contained in:
@@ -12,6 +12,13 @@ static const char *const TAG = "mcp4461.output";
|
|||||||
// floats from other components (like light etc.) are passed as "percentage floats"
|
// floats from other components (like light etc.) are passed as "percentage floats"
|
||||||
// this function converts them to the 0 - 256 range used by the MCP4461
|
// this function converts them to the 0 - 256 range used by the MCP4461
|
||||||
void Mcp4461Wiper::write_state(float state) {
|
void Mcp4461Wiper::write_state(float state) {
|
||||||
|
if (!std::isfinite(state)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
state = clamp(state, 0.0f, 1.0f);
|
||||||
|
if (this->is_inverted()) {
|
||||||
|
state = 1.0f - state;
|
||||||
|
}
|
||||||
if (this->parent_->set_wiper_level_(this->wiper_, static_cast<uint16_t>(std::roundf(state * 256)))) {
|
if (this->parent_->set_wiper_level_(this->wiper_, static_cast<uint16_t>(std::roundf(state * 256)))) {
|
||||||
this->state_ = state;
|
this->state_ = state;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user