kapraran / FreqCountESP

A frequency counter library for esp32
https://kapraran.github.io/FreqCountESP/
MIT License
31 stars 7 forks source link

The library is not compatible with last idf-release_v5.1 #11

Open woodlist opened 2 months ago

woodlist commented 2 months ago

Please update the library. It has too many compatible issues. The compilation output is: `c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp: In function 'void onHLim(void)': c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:25:39: warning: compound assignment with 'volatile'-qualified left operand is deprecated [-Wvolatile] 25 | (volatile uint32_t )backupCounter += PCNT_HIGH_LIMIT; | ^ In file included from C:\Users\woodl\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083/esp32/include/xtensa/include/xt_utils.h:16, from C:\Users\woodl\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083/esp32/include/esp_hw_support/include/esp_cpu.h:16, from C:\Users\woodl\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083/esp32/include/esp_hw_support/include/spinlock.h:11, from C:\Users\woodl\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083/esp32/include/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:74, from C:\Users\woodl\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083/esp32/include/freertos/FreeRTOS-Kernel/include/freertos/portable.h:59, from C:\Users\woodl\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083/esp32/include/freertos/FreeRTOS-Kernel/include/freertos/FreeRTOS.h:71, from C:\Users\woodl\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.0-rc3\cores\esp32/Arduino.h:33, from c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.h:4, from c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:1: c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:16:19: error: 'PCNT_UNIT_0' was not declared in this scope; did you mean 'PCNT_UNIT'? 16 | #define PCNT_UNIT PCNT_UNIT_0 | ^~~ C:\Users\woodl\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083/esp32/include/esp_common/include/esp_bit_defs.h:79:42: note: in definition of macro 'BIT' 79 | #define BIT(nr) (1UL << (nr)) | ^~ c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:26:26: note: in expansion of macro 'PCNT_UNIT' 26 | PCNT.int_clr.val = BIT(PCNT_UNIT); // Clear the interrupt. | ^~~~~ c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp: At global scope: c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:30:8: error: 'pcnt_isr_handle_t' does not name a type; did you mean 'pcnt_unit_handle_t'? 30 | static pcnt_isr_handle_t setupPcnt(uint8_t pin, volatile uint32_t backupCounter) { | ^~~~~ | pcnt_unit_handle_t c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:52:24: warning: ignoring attribute 'section (".iram1.3")' because it conflicts with previous 'section (".iram1.1")' [-Wattributes] 52 | void IRAM_ATTR onTimer() | ^ c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.h:17:16: note: previous declaration here 17 | void IRAM_ATTR onTimer(); | ^~~ c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp: In function 'void onTimer()': c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:16:19: error: 'PCNT_UNIT_0' was not declared in this scope; did you mean 'PCNT_UNIT'? 16 | #define PCNT_UNIT PCNT_UNIT_0 | ^~~ c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:57:26: note: in expansion of macro 'PCNT_UNIT' 57 | pcnt_get_counter_value(PCNT_UNIT, &pulseCount); | ^~~~~ c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:57:3: error: 'pcnt_get_counter_value' was not declared in this scope 57 | pcnt_get_counter_value(PCNT_UNIT, &pulseCount); | ^~~~~~ c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp: At global scope: c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:69:6: error: variable or field 'teardownPcnt' declared void 69 | void teardownPcnt(pcnt_isr_handle_t isrHandle) | ^~~~ c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:69:19: error: 'pcnt_isr_handle_t' was not declared in this scope; did you mean 'pcnt_unit_handle_t'? 69 | void teardownPcnt(pcnt_isr_handle_t isrHandle) | ^~~~~ | pcnt_unit_handle_t c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:90:23: warning: ignoring attribute 'section (".iram1.4")' because it conflicts with previous 'section (".iram1.0")' [-Wattributes] 90 | void IRAM_ATTR onRise() | ^ c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.h:16:16: note: previous declaration here 16 | void IRAM_ATTR onRise(); | ^~ c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp: In function 'void onRise()': c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:93:18: warning: '++' expression of 'volatile'-qualified type is deprecated [-Wvolatile] 93 | _FreqCountESP::sCount++; | ~~~^~ c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp: In member function 'void _FreqCountESP::_begin(uint8_t, uint8_t)': c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:119:16: error: 'setupPcnt' was not declared in this scope 119 | mIsrHandle = setupPcnt(mPin, &_FreqCountESP::sCount); | ^~~~~ c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:125:5: error: 'timerAlarmEnable' was not declared in this scope; did you mean 'timerAlarm'? 125 | timerAlarmEnable(mTimer); | ^~~~ | timerAlarm c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp: In member function 'void _FreqCountESP::begin(uint8_t, uint16_t, uint8_t, uint8_t)': c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:134:22: error: too many arguments to function 'hw_timer_t timerBegin(uint32_t)' 134 | mTimer = timerBegin(hwTimerId, 80, true); | ~~^~~~~ In file included from C:\Users\woodl\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.0-rc3\cores\esp32/esp32-hal.h:84, from C:\Users\woodl\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.0-rc3\cores\esp32/Arduino.h:36: C:\Users\woodl\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.0-rc3\cores\esp32/esp32-hal-timer.h:35:13: note: declared here 35 | hw_timer_t timerBegin(uint32_t frequency); | ^~~~~~ c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:135:23: error: too many arguments to function 'void timerAttachInterrupt(hw_timer_t, void ()())' 135 | timerAttachInterrupt(mTimer, &onTimer, true); | ~~~~^~~~~~~~ C:\Users\woodl\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.0-rc3\cores\esp32/esp32-hal-timer.h:50:6: note: declared here 50 | void timerAttachInterrupt(hw_timer_t timer, void (userFunc)(void)); | ^~~~~~~~ c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:136:3: error: 'timerAlarmWrite' was not declared in this scope; did you mean 'timerWrite'? 136 | timerAlarmWrite(mTimer, timerMs * 1000, true); | ^~~~~~~ | timerWrite c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp: In member function 'void _FreqCountESP::end()': c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:167:3: error: 'teardownPcnt' was not declared in this scope 167 | teardownPcnt(mIsrHandle); | ^~~~ c:\Users\woodl\Documents\Arduino\libraries\FreqCountESP\src\FreqCountESP.cpp:172:5: error: 'timerAlarmDisable' was not declared in this scope 172 | timerAlarmDisable(mTimer); | ^~~~~

exit status 1

Compilation error: exit status 1`