You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 29, 2023. It is now read-only.
<ahref="https://www.buymeacoffee.com/khoihprog6"target="_blank"><imgsrc="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png"alt="Buy Me A Coffee"style="height: 60px!important;width: 217px!important;" ></a>
9
+
<ahref="https://www.buymeacoffee.com/khoihprog6"target="_blank"><imgsrc="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png"alt="Buy Me A Coffee"style="height: 50px!important;width: 181px!important;" ></a>
10
10
11
11
---
12
12
---
@@ -47,6 +47,7 @@
47
47
*[3. Argument_None on ESP32S2_DEV](#3-argument_none-on-esp32s2_dev)
48
48
*[4. ISR_16_Timers_Array_Complex on ESP32C3_DEV](#4-isr_16_timers_array_complex-on-esp32c3_dev)
49
49
*[5. ISR_16_Timers_Array on ESP32S2_DEV](#5-isr_16_timers_array-on-esp32s2_dev)
50
+
*[6. ISR_16_Timers_Array_Complex on ESP32S3_DEV](#6-isr_16_timers_array_complex-on-ESP32S3_DEV)**New**
50
51
*[Debug](#debug)
51
52
*[Troubleshooting](#troubleshooting)
52
53
*[Issues](#issues)
@@ -69,7 +70,7 @@
69
70
70
71
### Features
71
72
72
-
This library enables you to use Interrupt from Hardware Timers on an ESP32, ESP32_S2/C3-based board.
73
+
This library enables you to use Interrupt from Hardware Timers on an ESP32, ESP32_S2/S3/C3-based board.
73
74
74
75
---
75
76
@@ -111,8 +112,10 @@ The catch is **your function is now part of an ISR (Interrupt Service Routine),
111
112
### Currently supported Boards
112
113
113
114
1. ESP32 boards, such as ESP32_DEV, etc.
114
-
2. ESP32S2-based boards, such as ESP32S2_DEV, ESP32_S2 Saola, etc.
115
-
3. ESP32C3-based boards, such as ESP32C3_DEV, etc.
115
+
2. ESP32_S2-based boards, such as ESP32S2_DEV, ESP32_S2 Saola, etc.
116
+
3. ESP32_C3-based boards, such as ESP32C3_DEV, etc.
117
+
4. ESP32_S3 (ESP32S3_DEV, ESP32_S3_BOX, UM TINYS3, UM PROS3, UM FEATHERS3, etc.) **New**
118
+
116
119
117
120
---
118
121
@@ -129,7 +132,7 @@ The catch is **your function is now part of an ISR (Interrupt Service Routine),
129
132
## Prerequisites
130
133
131
134
1.[`Arduino IDE 1.8.19+` for Arduino](https://github.com/arduino/Arduino). [](https://github.com/arduino/Arduino/releases/latest)
132
-
2.[`ESP32 Core 2.0.2+`](https://github.com/espressif/arduino-esp32) for ESP32-based boards (ESP32, ESP32_S2 and ESP32_C3). [](https://github.com/espressif/arduino-esp32/releases/latest/).
135
+
2.[`ESP32 Core 2.0.2+`](https://github.com/espressif/arduino-esp32) for ESP32-based boards (ESP32, ESP32_S2, ESP32_S3 and ESP32_C3). [](https://github.com/espressif/arduino-esp32/releases/latest/).
3. Install [**ESP32_New_TimerInterrupt** library](https://platformio.org/lib/show/12678/ESP32_New_TimerInterrupt) by using [Library Manager](https://platformio.org/lib/show/12678/ESP32_New_TimerInterrupt/installation). Search for **ESP32_New_TimerInterrupt** in [Platform.io Author's Libraries](https://platformio.org/lib/search?query=author:%22Khoi%20Hoang%22)
164
+
3. Install [**ESP32_New_TimerInterrupt** library](https://registry.platformio.org/libraries/khoih-prog/ESP32_New_TimerInterrupt) by using [Library Manager](https://registry.platformio.org/libraries/khoih-prog/ESP32_New_TimerInterrupt/installation). Search for **ESP32_New_TimerInterrupt** in [Platform.io Author's Libraries](https://platformio.org/lib/search?query=author:%22Khoi%20Hoang%22)
162
165
4. Use included [platformio.ini](platformio/platformio.ini) file from examples to ensure that all dependent libraries will installed automatically. Please visit documentation for the other options and examples at [Project Configuration File](https://docs.platformio.org/page/projectconf.html)
163
166
164
167
@@ -278,7 +281,7 @@ Before using any Timer, you have to make sure the Timer has not been used by any
278
281
#endif
279
282
280
283
// These define's must be placed at the beginning before #include "ESP32TimerInterrupt.h"
281
-
#define _TIMERINTERRUPT_LOGLEVEL_ 0
284
+
#define _TIMERINTERRUPT_LOGLEVEL_ 4
282
285
283
286
#include "ESP32_New_TimerInterrupt.h"
284
287
#include "ESP32_New_ISR_Timer.h"
@@ -614,7 +617,7 @@ The following is the sample terminal output when running example [TimerInterrupt
@@ -728,7 +731,7 @@ The following is the sample terminal output when running example [ISR_16_Timers_
728
731
729
732
```
730
733
Starting ISR_16_Timers_Array_Complex on ESP32C3_DEV
731
-
ESP32_New_TimerInterrupt v1.1.0
734
+
ESP32_New_TimerInterrupt v1.2.0
732
735
CPU Frequency = 160 MHz
733
736
Starting ITimer OK, millis() = 2187
734
737
SimpleTimer : 2, ms : 12193, Dms : 10004
@@ -879,13 +882,167 @@ The following is the sample terminal output when running example [ISR_16_Timers_
879
882
880
883
```
881
884
Starting ISR_16_Timers_Array on ESP32S2_DEV
882
-
ESP32_New_TimerInterrupt v1.1.0
885
+
ESP32_New_TimerInterrupt v1.2.0
883
886
CPU Frequency = 240 MHz
884
887
Starting ITimer OK, millis() = 2538
885
888
simpleTimerDoingSomething2s: Delta programmed ms = 2000, actual = 10008
886
889
simpleTimerDoingSomething2s: Delta programmed ms = 2000, actual = 10005
887
890
```
888
891
892
+
---
893
+
894
+
### 6. ISR_16_Timers_Array_Complex on ESP32S3_DEV
895
+
896
+
The following is the sample terminal output when running example [ISR_16_Timers_Array_Complex](examples/ISR_16_Timers_Array_Complex) on **ESP32S3_DEV** to demonstrate of ISR Hardware Timer, especially when system is very busy or blocked. The 16 independent ISR timers are programmed to be activated repetitively after certain intervals, is activated exactly after that programmed interval !!!
897
+
898
+
```
899
+
Starting ISR_16_Timers_Array_Complex on ESP32S3_DEV
@@ -931,16 +1088,17 @@ Submit issues to: [ESP32_New_TimerInterrupt issues](https://github.com/khoih-pro
931
1088
932
1089
## DONE
933
1090
934
-
1. Basic hardware timers for ESP32, ESP32-S2 and ESP32_C3 for [ESP32 core v2.0.0-rc1+](https://github.com/espressif/arduino-esp32/releases/tag/2.0.0-rc1)
935
-
2. More hardware-initiated software-enabled timers
936
-
3. Longer time interval
937
-
4. Similar features for remaining Arduino boards such as SAMD21, SAMD51, SAM-DUE, nRF52, ESP8266, STM32, etc.
938
-
5. Fix compiler errors due to conflict to some libraries.
939
-
6. Add complex examples.
940
-
7. Avoid using D1 in examples due to issue with core v2.0.0 and v2.0.1.
941
-
8. Avoid using float in ISR due to issue with core v2.0.0 and v2.0.1.
942
-
9. Fix `multiple-definitions` linker error. Drop `src_cpp` and `src_h` directories
943
-
1091
+
1. Basic hardware timers for ESP32, ESP32-S2, ESP32-S3 and ESP32_C3 for [ESP32 core v2.0.0-rc1+](https://github.com/espressif/arduino-esp32/releases/tag/2.0.0-rc1)
1092
+
2. More hardware-initiated software-enabled timers
1093
+
3. Longer time interval
1094
+
4. Similar features for remaining Arduino boards such as SAMD21, SAMD51, SAM-DUE, nRF52, ESP8266, STM32, etc.
1095
+
5. Fix compiler errors due to conflict to some libraries.
1096
+
6. Add complex examples.
1097
+
7. Avoid using D1 in examples due to issue with core v2.0.0 and v2.0.1.
1098
+
8. Avoid using float in ISR due to issue with core v2.0.0 and v2.0.1.
1099
+
9. Fix `multiple-definitions` linker error. Drop `src_cpp` and `src_h` directories
1100
+
10. Optimize library code by using `reference-passing` instead of `value-passing`
1101
+
11. Add support to **ESP32-S3 (ESP32S3_DEV, ESP32_S3_BOX, UM TINYS3, UM PROS3, UM FEATHERS3, etc.) using EEPROM, SPIFFS or LittleFS**
"description": "This library enables you to use Interrupt from Hardware Timers on an ESP32, ESP32_S2 or ESP32_C3-based board. It now supports 16 ISR-based timers, while consuming only 1 Hardware Timer. Timers' interval is very long (ulong millisecs). The most important feature is they're ISR-based timers. Therefore, their executions are not blocked by bad-behaving functions or tasks. This important feature is absolutely necessary for mission-critical tasks. These hardware timers, using interrupt, still work even if other functions are blocking. Moreover, they are much more precise (certainly depending on clock frequency accuracy) than other software timers using millis() or micros(). That's necessary if you need to measure some data requiring better accuracy.",
5
+
"description": "This library enables you to use Interrupt from Hardware Timers on an ESP32, ESP32_S2, ESP32_S3 or ESP32_C3-based board. It now supports 16 ISR-based timers, while consuming only 1 Hardware Timer. Timers' interval is very long (ulong millisecs). The most important feature is they're ISR-based timers. Therefore, their executions are not blocked by bad-behaving functions or tasks. This important feature is absolutely necessary for mission-critical tasks. These hardware timers, using interrupt, still work even if other functions are blocking. Moreover, they are much more precise (certainly depending on clock frequency accuracy) than other software timers using millis() or micros(). That's necessary if you need to measure some data requiring better accuracy.",
0 commit comments