fix lint warning for C++20 volatile

This commit is contained in:
proddy
2026-06-06 16:42:32 +02:00
parent b85085790a
commit a2afc4342e

View File

@@ -32,7 +32,7 @@ volatile unsigned long AnalogSensor::edgecnt[] = {0, 0, 0};
void IRAM_ATTR AnalogSensor::freqIrq0() { void IRAM_ATTR AnalogSensor::freqIrq0() {
portENTER_CRITICAL_ISR(&mux); portENTER_CRITICAL_ISR(&mux);
if (micros() - edge[0] > 10) { // limit to 100kHz if (micros() - edge[0] > 10) { // limit to 100kHz
edgecnt[0]++; edgecnt[0] = edgecnt[0] + 1;
edge[0] = micros(); edge[0] = micros();
} }
portEXIT_CRITICAL_ISR(&mux); portEXIT_CRITICAL_ISR(&mux);
@@ -40,7 +40,7 @@ void IRAM_ATTR AnalogSensor::freqIrq0() {
void IRAM_ATTR AnalogSensor::freqIrq1() { void IRAM_ATTR AnalogSensor::freqIrq1() {
portENTER_CRITICAL_ISR(&mux); portENTER_CRITICAL_ISR(&mux);
if (micros() - edge[1] > 10) { // limit to 100kHz if (micros() - edge[1] > 10) { // limit to 100kHz
edgecnt[1]++; edgecnt[1] = edgecnt[1] + 1;
edge[1] = micros(); edge[1] = micros();
} }
portEXIT_CRITICAL_ISR(&mux); portEXIT_CRITICAL_ISR(&mux);
@@ -48,7 +48,7 @@ void IRAM_ATTR AnalogSensor::freqIrq1() {
void IRAM_ATTR AnalogSensor::freqIrq2() { void IRAM_ATTR AnalogSensor::freqIrq2() {
portENTER_CRITICAL_ISR(&mux); portENTER_CRITICAL_ISR(&mux);
if (micros() - edge[2] > 10) { // limit to 100kHz if (micros() - edge[2] > 10) { // limit to 100kHz
edgecnt[2]++; edgecnt[2] = edgecnt[2] + 1;
edge[2] = micros(); edge[2] = micros();
} }
portEXIT_CRITICAL_ISR(&mux); portEXIT_CRITICAL_ISR(&mux);
@@ -272,7 +272,9 @@ void AnalogSensor::reload(bool get_nvs) {
sensor.set_value(0); sensor.set_value(0);
publish_sensor(sensor); publish_sensor(sensor);
attachInterrupt(sensor.gpio(), index == 0 ? freqIrq0 : index == 1 ? freqIrq1 : freqIrq2, FALLING); attachInterrupt(sensor.gpio(), index == 0 ? freqIrq0 : index == 1 ? freqIrq1 : freqIrq2, FALLING);
lastedge[index] = edge[index] = micros(); unsigned long now = micros();
edge[index] = now;
lastedge[index] = now;
edgecnt[index] = 0; edgecnt[index] = 0;
} else if (sensor.type() >= AnalogType::CNT_0 && sensor.type() <= AnalogType::CNT_2) { } else if (sensor.type() >= AnalogType::CNT_0 && sensor.type() <= AnalogType::CNT_2) {
auto index = sensor.type() - AnalogType::CNT_0; auto index = sensor.type() - AnalogType::CNT_0;