Skip to content
This repository was archived by the owner on Jan 29, 2023. It is now read-only.

Commit e443878

Browse files
authored
v1.2.0 to add support to new ESP32-S3
### Releases v1.2.0 1. Add support to new `ESP32-S3` 2. Optimize library code by using `reference-passing` instead of `value-passing`
1 parent 00bbcac commit e443878

12 files changed

+344
-140
lines changed

CONTRIBUTING.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Please ensure to specify the following:
1616

1717
* Arduino IDE version (e.g. 1.8.19) or Platform.io version
1818
* `ESP32` Core Version (e.g. ESP32 core v2.0.2)
19-
* `ESP32` Board type (e.g. ESP32_DEV Module, ESP32_S2_DEV, ESP32_C3_DEV, etc.)
19+
* `ESP32` Board type (e.g. ESP32_DEV Module, ESP32_S2_DEV, ESP32_S3_DEV, ESP32_C3_DEV, etc.)
2020
* Contextual information (e.g. what you were trying to achieve)
2121
* Simplest possible steps to reproduce
2222
* Anything that might be relevant in your opinion, such as:
@@ -31,7 +31,7 @@ Arduino IDE version: 1.8.19
3131
ESP32 Core Version 2.0.2
3232
ESP32S2_DEV Module
3333
OS: Ubuntu 20.04 LTS
34-
Linux xy-Inspiron-3593 5.4.0-96-generic #109-Ubuntu SMP Wed Jan 12 16:49:16 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
34+
Linux xy-Inspiron-3593 5.4.0-99-generic #112-Ubuntu SMP Thu Feb 3 13:50:55 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
3535
3636
Context:
3737
I encountered a crash while using ESP32_New_TimerInterrupt.
@@ -52,3 +52,4 @@ There are usually some outstanding feature requests in the [existing issues list
5252
### Sending Pull Requests
5353

5454
Pull Requests with changes and fixes are also welcome!
55+

README.md

Lines changed: 180 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](#Contributing)
77
[![GitHub issues](https://img.shields.io/github/issues/khoih-prog/ESP32_New_TimerInterrupt.svg)](http://github.com/khoih-prog/ESP32_New_TimerInterrupt/issues)
88

9-
<a href="https://www.buymeacoffee.com/khoihprog6" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
9+
<a href="https://www.buymeacoffee.com/khoihprog6" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 50px !important;width: 181px !important;" ></a>
1010

1111
---
1212
---
@@ -47,6 +47,7 @@
4747
* [3. Argument_None on ESP32S2_DEV](#3-argument_none-on-esp32s2_dev)
4848
* [4. ISR_16_Timers_Array_Complex on ESP32C3_DEV](#4-isr_16_timers_array_complex-on-esp32c3_dev)
4949
* [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**
5051
* [Debug](#debug)
5152
* [Troubleshooting](#troubleshooting)
5253
* [Issues](#issues)
@@ -69,7 +70,7 @@
6970

7071
### Features
7172

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.
7374

7475
---
7576

@@ -111,8 +112,10 @@ The catch is **your function is now part of an ISR (Interrupt Service Routine),
111112
### Currently supported Boards
112113

113114
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+
116119

117120
---
118121

@@ -129,7 +132,7 @@ The catch is **your function is now part of an ISR (Interrupt Service Routine),
129132
## Prerequisites
130133

131134
1. [`Arduino IDE 1.8.19+` for Arduino](https://github.com/arduino/Arduino). [![GitHub release](https://img.shields.io/github/release/arduino/Arduino.svg)](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). [![Latest release](https://img.shields.io/github/release/espressif/arduino-esp32.svg)](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). [![Latest release](https://img.shields.io/github/release/espressif/arduino-esp32.svg)](https://github.com/espressif/arduino-esp32/releases/latest/).
133136

134137
---
135138
---
@@ -158,7 +161,7 @@ Another way to install is to:
158161

159162
1. Install [VS Code](https://code.visualstudio.com/)
160163
2. Install [PlatformIO](https://platformio.org/platformio-ide)
161-
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)
162165
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)
163166

164167

@@ -278,7 +281,7 @@ Before using any Timer, you have to make sure the Timer has not been used by any
278281
#endif
279282
280283
// These define's must be placed at the beginning before #include "ESP32TimerInterrupt.h"
281-
#define _TIMERINTERRUPT_LOGLEVEL_ 0
284+
#define _TIMERINTERRUPT_LOGLEVEL_ 4
282285
283286
#include "ESP32_New_TimerInterrupt.h"
284287
#include "ESP32_New_ISR_Timer.h"
@@ -614,7 +617,7 @@ The following is the sample terminal output when running example [TimerInterrupt
614617
```
615618
616619
Starting TimerInterruptTest on ESP32_DEV
617-
ESP32_New_TimerInterrupt v1.1.0
620+
ESP32_New_TimerInterrupt v1.2.0
618621
CPU Frequency = 240 MHz
619622
[TISR] ESP32_TimerInterrupt: _timerNo = 0 , _fre = 1000000
620623
[TISR] TIMER_BASE_CLK = 80000000 , TIMER_DIVIDER = 80
@@ -647,7 +650,7 @@ The following is the sample terminal output when running example [Change_Interva
647650

648651
```
649652
Starting Change_Interval on ESP32_DEV
650-
ESP32_New_TimerInterrupt v1.1.0
653+
ESP32_New_TimerInterrupt v1.2.0
651654
CPU Frequency = 240 MHz
652655
Starting ITimer0 OK, millis() = 136
653656
Starting ITimer1 OK, millis() = 147
@@ -676,7 +679,7 @@ The following is the sample terminal output when running example [Argument_None]
676679

677680
```
678681
Starting Argument_None on ESP32S2_DEV
679-
ESP32_New_TimerInterrupt v1.1.0
682+
ESP32_New_TimerInterrupt v1.2.0
680683
CPU Frequency = 240 MHz
681684
[TISR] ESP32_S2_TimerInterrupt: _timerNo = 0 , _fre = 1000000
682685
[TISR] TIMER_BASE_CLK = 80000000 , TIMER_DIVIDER = 80
@@ -728,7 +731,7 @@ The following is the sample terminal output when running example [ISR_16_Timers_
728731

729732
```
730733
Starting ISR_16_Timers_Array_Complex on ESP32C3_DEV
731-
ESP32_New_TimerInterrupt v1.1.0
734+
ESP32_New_TimerInterrupt v1.2.0
732735
CPU Frequency = 160 MHz
733736
Starting ITimer OK, millis() = 2187
734737
SimpleTimer : 2, ms : 12193, Dms : 10004
@@ -879,13 +882,167 @@ The following is the sample terminal output when running example [ISR_16_Timers_
879882

880883
```
881884
Starting ISR_16_Timers_Array on ESP32S2_DEV
882-
ESP32_New_TimerInterrupt v1.1.0
885+
ESP32_New_TimerInterrupt v1.2.0
883886
CPU Frequency = 240 MHz
884887
Starting ITimer OK, millis() = 2538
885888
simpleTimerDoingSomething2s: Delta programmed ms = 2000, actual = 10008
886889
simpleTimerDoingSomething2s: Delta programmed ms = 2000, actual = 10005
887890
```
888891

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
900+
ESP32_New_TimerInterrupt v1.2.0
901+
CPU Frequency = 240 MHz
902+
[TISR] ESP32_S3_TimerInterrupt: _timerNo = 1 , _fre = 1000000
903+
[TISR] TIMER_BASE_CLK = 80000000 , TIMER_DIVIDER = 80
904+
[TISR] _timerIndex = 1 , _timerGroup = 0
905+
[TISR] _count = 0 - 10000
906+
[TISR] timer_set_alarm_value = 10000.00
907+
Starting ITimer OK, millis() = 2118
908+
SimpleTimer : 2, ms : 12117, Dms : 9999
909+
Timer : 0, programmed : 5000, actual : 5009
910+
Timer : 1, programmed : 10000, actual : 0
911+
Timer : 2, programmed : 15000, actual : 0
912+
Timer : 3, programmed : 20000, actual : 0
913+
Timer : 4, programmed : 25000, actual : 0
914+
Timer : 5, programmed : 30000, actual : 0
915+
Timer : 6, programmed : 35000, actual : 0
916+
Timer : 7, programmed : 40000, actual : 0
917+
Timer : 8, programmed : 45000, actual : 0
918+
Timer : 9, programmed : 50000, actual : 0
919+
Timer : 10, programmed : 55000, actual : 0
920+
Timer : 11, programmed : 60000, actual : 0
921+
Timer : 12, programmed : 65000, actual : 0
922+
Timer : 13, programmed : 70000, actual : 0
923+
Timer : 14, programmed : 75000, actual : 0
924+
Timer : 15, programmed : 80000, actual : 0
925+
SimpleTimer : 2, ms : 22180, Dms : 10063
926+
Timer : 0, programmed : 5000, actual : 5000
927+
Timer : 1, programmed : 10000, actual : 10000
928+
Timer : 2, programmed : 15000, actual : 15009
929+
Timer : 3, programmed : 20000, actual : 20009
930+
Timer : 4, programmed : 25000, actual : 0
931+
Timer : 5, programmed : 30000, actual : 0
932+
Timer : 6, programmed : 35000, actual : 0
933+
Timer : 7, programmed : 40000, actual : 0
934+
Timer : 8, programmed : 45000, actual : 0
935+
Timer : 9, programmed : 50000, actual : 0
936+
Timer : 10, programmed : 55000, actual : 0
937+
Timer : 11, programmed : 60000, actual : 0
938+
Timer : 12, programmed : 65000, actual : 0
939+
Timer : 13, programmed : 70000, actual : 0
940+
Timer : 14, programmed : 75000, actual : 0
941+
Timer : 15, programmed : 80000, actual : 0
942+
SimpleTimer : 2, ms : 32243, Dms : 10063
943+
Timer : 0, programmed : 5000, actual : 5000
944+
Timer : 1, programmed : 10000, actual : 10000
945+
Timer : 2, programmed : 15000, actual : 15000
946+
Timer : 3, programmed : 20000, actual : 20009
947+
Timer : 4, programmed : 25000, actual : 25009
948+
Timer : 5, programmed : 30000, actual : 30009
949+
Timer : 6, programmed : 35000, actual : 0
950+
Timer : 7, programmed : 40000, actual : 0
951+
Timer : 8, programmed : 45000, actual : 0
952+
Timer : 9, programmed : 50000, actual : 0
953+
Timer : 10, programmed : 55000, actual : 0
954+
Timer : 11, programmed : 60000, actual : 0
955+
Timer : 12, programmed : 65000, actual : 0
956+
Timer : 13, programmed : 70000, actual : 0
957+
Timer : 14, programmed : 75000, actual : 0
958+
Timer : 15, programmed : 80000, actual : 0
959+
SimpleTimer : 2, ms : 42306, Dms : 10063
960+
Timer : 0, programmed : 5000, actual : 5000
961+
Timer : 1, programmed : 10000, actual : 10000
962+
Timer : 2, programmed : 15000, actual : 15000
963+
Timer : 3, programmed : 20000, actual : 20000
964+
Timer : 4, programmed : 25000, actual : 25009
965+
Timer : 5, programmed : 30000, actual : 30009
966+
Timer : 6, programmed : 35000, actual : 35009
967+
Timer : 7, programmed : 40000, actual : 40009
968+
Timer : 8, programmed : 45000, actual : 0
969+
Timer : 9, programmed : 50000, actual : 0
970+
Timer : 10, programmed : 55000, actual : 0
971+
Timer : 11, programmed : 60000, actual : 0
972+
Timer : 12, programmed : 65000, actual : 0
973+
Timer : 13, programmed : 70000, actual : 0
974+
Timer : 14, programmed : 75000, actual : 0
975+
Timer : 15, programmed : 80000, actual : 0
976+
SimpleTimer : 2, ms : 52369, Dms : 10063
977+
Timer : 0, programmed : 5000, actual : 5000
978+
Timer : 1, programmed : 10000, actual : 10000
979+
Timer : 2, programmed : 15000, actual : 15000
980+
Timer : 3, programmed : 20000, actual : 20000
981+
Timer : 4, programmed : 25000, actual : 25000
982+
Timer : 5, programmed : 30000, actual : 30009
983+
Timer : 6, programmed : 35000, actual : 35009
984+
Timer : 7, programmed : 40000, actual : 40009
985+
Timer : 8, programmed : 45000, actual : 45009
986+
Timer : 9, programmed : 50000, actual : 50009
987+
Timer : 10, programmed : 55000, actual : 0
988+
Timer : 11, programmed : 60000, actual : 0
989+
Timer : 12, programmed : 65000, actual : 0
990+
Timer : 13, programmed : 70000, actual : 0
991+
Timer : 14, programmed : 75000, actual : 0
992+
Timer : 15, programmed : 80000, actual : 0
993+
SimpleTimer : 2, ms : 62432, Dms : 10063
994+
Timer : 0, programmed : 5000, actual : 5000
995+
Timer : 1, programmed : 10000, actual : 10000
996+
Timer : 2, programmed : 15000, actual : 15000
997+
Timer : 3, programmed : 20000, actual : 20000
998+
Timer : 4, programmed : 25000, actual : 25000
999+
Timer : 5, programmed : 30000, actual : 30000
1000+
Timer : 6, programmed : 35000, actual : 35009
1001+
Timer : 7, programmed : 40000, actual : 40009
1002+
Timer : 8, programmed : 45000, actual : 45009
1003+
Timer : 9, programmed : 50000, actual : 50009
1004+
Timer : 10, programmed : 55000, actual : 55009
1005+
Timer : 11, programmed : 60000, actual : 60009
1006+
Timer : 12, programmed : 65000, actual : 0
1007+
Timer : 13, programmed : 70000, actual : 0
1008+
Timer : 14, programmed : 75000, actual : 0
1009+
Timer : 15, programmed : 80000, actual : 0
1010+
SimpleTimer : 2, ms : 72495, Dms : 10063
1011+
Timer : 0, programmed : 5000, actual : 5000
1012+
Timer : 1, programmed : 10000, actual : 10000
1013+
Timer : 2, programmed : 15000, actual : 15000
1014+
Timer : 3, programmed : 20000, actual : 20000
1015+
Timer : 4, programmed : 25000, actual : 25000
1016+
Timer : 5, programmed : 30000, actual : 30000
1017+
Timer : 6, programmed : 35000, actual : 35000
1018+
Timer : 7, programmed : 40000, actual : 40009
1019+
Timer : 8, programmed : 45000, actual : 45009
1020+
Timer : 9, programmed : 50000, actual : 50009
1021+
Timer : 10, programmed : 55000, actual : 55009
1022+
Timer : 11, programmed : 60000, actual : 60009
1023+
Timer : 12, programmed : 65000, actual : 65009
1024+
Timer : 13, programmed : 70000, actual : 70009
1025+
Timer : 14, programmed : 75000, actual : 0
1026+
Timer : 15, programmed : 80000, actual : 0
1027+
SimpleTimer : 2, ms : 82558, Dms : 10063
1028+
Timer : 0, programmed : 5000, actual : 5000
1029+
Timer : 1, programmed : 10000, actual : 10000
1030+
Timer : 2, programmed : 15000, actual : 15000
1031+
Timer : 3, programmed : 20000, actual : 20000
1032+
Timer : 4, programmed : 25000, actual : 25000
1033+
Timer : 5, programmed : 30000, actual : 30000
1034+
Timer : 6, programmed : 35000, actual : 35000
1035+
Timer : 7, programmed : 40000, actual : 40000
1036+
Timer : 8, programmed : 45000, actual : 45009
1037+
Timer : 9, programmed : 50000, actual : 50009
1038+
Timer : 10, programmed : 55000, actual : 55009
1039+
Timer : 11, programmed : 60000, actual : 60009
1040+
Timer : 12, programmed : 65000, actual : 65009
1041+
Timer : 13, programmed : 70000, actual : 70009
1042+
Timer : 14, programmed : 75000, actual : 75009
1043+
Timer : 15, programmed : 80000, actual : 80009
1044+
```
1045+
8891046
---
8901047
---
8911048

@@ -931,16 +1088,17 @@ Submit issues to: [ESP32_New_TimerInterrupt issues](https://github.com/khoih-pro
9311088

9321089
## DONE
9331090

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**
9441102

9451103
---
9461104
---

changelog.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
## Table of Contents
1313

1414
* [Changelog](#changelog)
15+
* [Releases v1.2.0](#releases-v120)
1516
* [Releases v1.1.0](#releases-v110)
1617
* [Releases v1.0.1](#releases-v101)
1718
* [Releases v1.0.0](#releases-v100)
@@ -22,6 +23,12 @@
2223

2324
## Changelog
2425

26+
### Releases v1.2.0
27+
28+
1. Add support to new `ESP32-S3`
29+
2. Optimize library code by using `reference-passing` instead of `value-passing`
30+
31+
2532
### Releases v1.1.0
2633

2734
1. Fix `multiple-definitions` linker error. Drop `src_cpp` and `src_h` directories

examples/ISR_16_Timers_Array_Complex/ISR_16_Timers_Array_Complex.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
#endif
4646

4747
// These define's must be placed at the beginning before #include "ESP32TimerInterrupt.h"
48-
#define _TIMERINTERRUPT_LOGLEVEL_ 0
48+
#define _TIMERINTERRUPT_LOGLEVEL_ 4
4949

5050
#include "ESP32_New_TimerInterrupt.h"
5151
#include "ESP32_New_ISR_Timer.h"

examples/RPM_Measure/RPM_Measure.ino

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,11 @@
4545
You can also use interrupt to detect whenever the SW is active, set a flag then use timer to count the time between active state
4646
*/
4747

48-
#if !defined( ESP32 )
48+
#if !defined(ESP32)
4949
#error This code is intended to run on the ESP32 platform! Please check your Tools->Board setting.
50+
#elif ( defined(ARDUINO_ESP32S3_DEV) || defined(ARDUINO_ESP32_S3_BOX) || defined(ARDUINO_TINYS3) || \
51+
defined(ARDUINO_PROS3) || defined(ARDUINO_FEATHERS3) )
52+
#error ESP32_S3 is not supported yet
5053
#endif
5154

5255
// These define's must be placed at the beginning before #include "TimerInterrupt_Generic.h"

library.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"name": "ESP32_New_TimerInterrupt",
3-
"version": "1.1.0",
3+
"version": "1.2.0",
44
"keywords": "timing, device, control, timer, interrupt, timer-interrupt, hardware, isr, isr-based, hardware-timer, isr-timer, isr-based-timer, mission-critical, accuracy, precise, non-blocking, esp32, esp32-s2, esp32-c3, esp32-s3",
5-
"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.",
66
"authors":
77
{
88
"name": "Khoi Hoang",
@@ -12,7 +12,7 @@
1212
"repository":
1313
{
1414
"type": "git",
15-
"url": "https://github.com/khoih-prog/ESP32_New_TimerInterrupt"
15+
"url": "//https://github.com/khoih-prog/ESP32_New_TimerInterrupt"
1616
},
1717
"homepage": "https://github.com/khoih-prog/ESP32_New_TimerInterrupt",
1818
"export": {

0 commit comments

Comments
 (0)