|
17 | 17 | * [Currently supported Boards](#currently-supported-boards) |
18 | 18 | * [Important Notes about ISR](#important-notes-about-isr) |
19 | 19 | * [Changelog](#changelog) |
| 20 | + * [Releases v1.4.0](#releases-v140) |
20 | 21 | * [Releases v1.3.0](#releases-v130) |
21 | 22 | * [Releases v1.2.0](#releases-v120) |
22 | 23 | * [Releases v1.1.1](#releases-v111) |
|
64 | 65 | * [ 9. RPM_Measure](examples/RPM_Measure) |
65 | 66 | * [ 10. SwitchDebounce](examples/SwitchDebounce) |
66 | 67 | * [ 11. TimerInterruptTest](examples/TimerInterruptTest) |
| 68 | + * [ 12. ISR_16_Timers_Array](examples/ISR_16_Timers_Array) **New** |
| 69 | + * [ 13. ISR_16_Timers_Array_Complex](examples/ISR_16_Timers_Array_Complex) **New** |
67 | 70 | * [Example ISR_Timer_Complex](#example-isr_timer_complex) |
68 | 71 | * [Debug Terminal Output Samples](#debug-terminal-output-samples) |
69 | 72 | * [1. ISR_Timer_Complex on ESP32_DEV](#1-isr_timer_complex-on-esp32_dev) |
70 | 73 | * [2. TimerInterruptTest on ESP32_DEV](#2-timerinterrupttest-on-esp32_dev) |
71 | 74 | * [3. Change_Interval on ESP32_DEV](#3-change_interval-on-esp32_dev) |
72 | 75 | * [4. TimerInterruptTest on ESP32_S2_DEV](#4-timerinterrupttest-on-esp32_s2_dev) |
| 76 | + * [5. ISR_16_Timers_Array_Complex on ESP32_DEV](#5-isr_16_timers_array_complex-on-esp32_dev) |
73 | 77 | * [Debug](#debug) |
74 | 78 | * [Troubleshooting](#troubleshooting) |
75 | 79 | * [Releases](#releases) |
@@ -143,6 +147,12 @@ The catch is **your function is now part of an ISR (Interrupt Service Routine), |
143 | 147 |
|
144 | 148 | ## Changelog |
145 | 149 |
|
| 150 | +### Releases v1.4.0 |
| 151 | + |
| 152 | +1. Fix compiler errors due to conflict to some libraries. |
| 153 | +2. Add complex examples. |
| 154 | + |
| 155 | + |
146 | 156 | ### Releases v1.3.0 |
147 | 157 |
|
148 | 158 | 1. Add support to ESP32-S2 and ESP32-C3 |
@@ -181,7 +191,7 @@ The catch is **your function is now part of an ISR (Interrupt Service Routine), |
181 | 191 |
|
182 | 192 | ## Prerequisites |
183 | 193 |
|
184 | | -1. [`Arduino IDE 1.8.13+` for Arduino](https://www.arduino.cc/en/Main/Software) |
| 194 | +1. [`Arduino IDE 1.8.15+` for Arduino](https://www.arduino.cc/en/Main/Software) |
185 | 195 | 2. [`ESP32-S2/C3 Core 1.0.6+`](https://github.com/espressif/arduino-esp32) for ESP32-S2/C3-based boards. Must follow [HOWTO Install esp32 core for ESP32-S2 (Saola, AI-Thinker ESP-12K) and ESP32-C3 boards into Arduino IDE](#howto-install-esp32-core-for-esp32-s2-saola-ai-thinker-esp-12k-and-esp32-c3-boards-into-arduino-ide). |
186 | 196 |
|
187 | 197 | --- |
@@ -504,7 +514,9 @@ Before using any Timer, you have to make sure the Timer has not been used by any |
504 | 514 | 8. [RPM_Measure](examples/RPM_Measure) |
505 | 515 | 9. [SwitchDebounce](examples/SwitchDebounce) |
506 | 516 | 10. [TimerInterruptTest](examples/TimerInterruptTest) |
507 | | -11. [**Change_Interval**](examples/Change_Interval). |
| 517 | +11. [Change_Interval](examples/Change_Interval) |
| 518 | +12. [**ISR_16_Timers_Array**](examples/ISR_16_Timers_Array) |
| 519 | +13. [**ISR_16_Timers_Array_Complex**](examples/ISR_16_Timers_Array_Complex). |
508 | 520 |
|
509 | 521 |
|
510 | 522 | --- |
@@ -845,7 +857,7 @@ While software timer, **programmed for 2s, is activated after 3.435s !!!** |
845 | 857 |
|
846 | 858 | ``` |
847 | 859 | Starting ISR_Timer_Complex on ESP32_DEV |
848 | | -ESP32TimerInterrupt v1.3.0 |
| 860 | +ESP32TimerInterrupt v1.4.0 |
849 | 861 | CPU Frequency = 240 MHz |
850 | 862 | ESP32TimerInterrupt: _timerNo = 1, _fre = 1000000.00, _count = 0 - 50000 |
851 | 863 | Starting ITimer OK, millis() = 2140 |
@@ -910,7 +922,7 @@ The following is the sample terminal output when running example [TimerInterrupt |
910 | 922 |
|
911 | 923 | ``` |
912 | 924 | Starting TimerInterruptTest on ESP32_DEV |
913 | | -ESP32TimerInterrupt v1.3.0 |
| 925 | +ESP32TimerInterrupt v1.4.0 |
914 | 926 | CPU Frequency = 240 MHz |
915 | 927 | ESP32TimerInterrupt: _timerNo = 0, _fre = 1000000.00, _count = 0 - 1000000 |
916 | 928 | Starting ITimer0 OK, millis() = 136 |
@@ -972,7 +984,7 @@ The following is the sample terminal output when running example [Change_Interva |
972 | 984 |
|
973 | 985 | ``` |
974 | 986 | Starting Change_Interval on ESP32_DEV |
975 | | -ESP32TimerInterrupt v1.3.0 |
| 987 | +ESP32TimerInterrupt v1.4.0 |
976 | 988 | CPU Frequency = 240 MHz |
977 | 989 | Starting ITimer0 OK, millis() = 136 |
978 | 990 | Starting ITimer1 OK, millis() = 136 |
@@ -1012,7 +1024,7 @@ The following is the sample terminal output when running example [TimerInterrupt |
1012 | 1024 |
|
1013 | 1025 | ``` |
1014 | 1026 | Starting TimerInterruptTest on ESP32S2_DEV |
1015 | | -ESP32_S2_TimerInterrupt v1.3.0 |
| 1027 | +ESP32_S2_TimerInterrupt v1.4.0 |
1016 | 1028 | CPU Frequency = 240 MHz |
1017 | 1029 | [TISR] ESP32_S2_TimerInterrupt: _timerNo = 0 , _fre = 1000000 |
1018 | 1030 | [TISR] TIMER_BASE_CLK = 80000000 , TIMER_DIVIDER = 80 |
@@ -1047,6 +1059,175 @@ ITimer0 called, millis() = 15002 |
1047 | 1059 | Stop ITimer0, millis() = 15003 |
1048 | 1060 | ``` |
1049 | 1061 |
|
| 1062 | +--- |
| 1063 | + |
| 1064 | +### 5. ISR_16_Timers_Array_Complex on ESP32_DEV |
| 1065 | + |
| 1066 | +The following is the sample terminal output when running example [ISR_16_Timers_Array_Complex](examples/ISR_16_Timers_Array_Complex) on **ESP32_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 !!! |
| 1067 | + |
| 1068 | + |
| 1069 | +``` |
| 1070 | +Starting ISR_16_Timers_Array_Complex on ESP32_DEV |
| 1071 | +ESP32TimerInterrupt v1.4.0 |
| 1072 | +CPU Frequency = 240 MHz |
| 1073 | +Starting ITimer OK, millis() = 128 |
| 1074 | +SimpleTimer : 2, ms : 10129, Dms : 10000 |
| 1075 | +Timer : 0, programmed : 5000, actual : 5009 |
| 1076 | +Timer : 1, programmed : 10000, actual : 0 |
| 1077 | +Timer : 2, programmed : 15000, actual : 0 |
| 1078 | +Timer : 3, programmed : 20000, actual : 0 |
| 1079 | +Timer : 4, programmed : 25000, actual : 0 |
| 1080 | +Timer : 5, programmed : 30000, actual : 0 |
| 1081 | +Timer : 6, programmed : 35000, actual : 0 |
| 1082 | +Timer : 7, programmed : 40000, actual : 0 |
| 1083 | +Timer : 8, programmed : 45000, actual : 0 |
| 1084 | +Timer : 9, programmed : 50000, actual : 0 |
| 1085 | +Timer : 10, programmed : 55000, actual : 0 |
| 1086 | +Timer : 11, programmed : 60000, actual : 0 |
| 1087 | +Timer : 12, programmed : 65000, actual : 0 |
| 1088 | +Timer : 13, programmed : 70000, actual : 0 |
| 1089 | +Timer : 14, programmed : 75000, actual : 0 |
| 1090 | +Timer : 15, programmed : 80000, actual : 0 |
| 1091 | +SimpleTimer : 2, ms : 20182, Dms : 10053 |
| 1092 | +Timer : 0, programmed : 5000, actual : 5000 |
| 1093 | +Timer : 1, programmed : 10000, actual : 10000 |
| 1094 | +Timer : 2, programmed : 15000, actual : 15009 |
| 1095 | +Timer : 3, programmed : 20000, actual : 20009 |
| 1096 | +Timer : 4, programmed : 25000, actual : 0 |
| 1097 | +Timer : 5, programmed : 30000, actual : 0 |
| 1098 | +Timer : 6, programmed : 35000, actual : 0 |
| 1099 | +Timer : 7, programmed : 40000, actual : 0 |
| 1100 | +Timer : 8, programmed : 45000, actual : 0 |
| 1101 | +Timer : 9, programmed : 50000, actual : 0 |
| 1102 | +Timer : 10, programmed : 55000, actual : 0 |
| 1103 | +Timer : 11, programmed : 60000, actual : 0 |
| 1104 | +Timer : 12, programmed : 65000, actual : 0 |
| 1105 | +Timer : 13, programmed : 70000, actual : 0 |
| 1106 | +Timer : 14, programmed : 75000, actual : 0 |
| 1107 | +Timer : 15, programmed : 80000, actual : 0 |
| 1108 | +SimpleTimer : 2, ms : 30236, Dms : 10054 |
| 1109 | +Timer : 0, programmed : 5000, actual : 5000 |
| 1110 | +Timer : 1, programmed : 10000, actual : 10000 |
| 1111 | +Timer : 2, programmed : 15000, actual : 15000 |
| 1112 | +Timer : 3, programmed : 20000, actual : 20009 |
| 1113 | +Timer : 4, programmed : 25000, actual : 25009 |
| 1114 | +Timer : 5, programmed : 30000, actual : 30009 |
| 1115 | +Timer : 6, programmed : 35000, actual : 0 |
| 1116 | +Timer : 7, programmed : 40000, actual : 0 |
| 1117 | +Timer : 8, programmed : 45000, actual : 0 |
| 1118 | +Timer : 9, programmed : 50000, actual : 0 |
| 1119 | +Timer : 10, programmed : 55000, actual : 0 |
| 1120 | +Timer : 11, programmed : 60000, actual : 0 |
| 1121 | +Timer : 12, programmed : 65000, actual : 0 |
| 1122 | +Timer : 13, programmed : 70000, actual : 0 |
| 1123 | +Timer : 14, programmed : 75000, actual : 0 |
| 1124 | +Timer : 15, programmed : 80000, actual : 0 |
| 1125 | +SimpleTimer : 2, ms : 40290, Dms : 10054 |
| 1126 | +Timer : 0, programmed : 5000, actual : 5000 |
| 1127 | +Timer : 1, programmed : 10000, actual : 10000 |
| 1128 | +Timer : 2, programmed : 15000, actual : 15000 |
| 1129 | +Timer : 3, programmed : 20000, actual : 20000 |
| 1130 | +Timer : 4, programmed : 25000, actual : 25009 |
| 1131 | +Timer : 5, programmed : 30000, actual : 30009 |
| 1132 | +Timer : 6, programmed : 35000, actual : 35009 |
| 1133 | +Timer : 7, programmed : 40000, actual : 40009 |
| 1134 | +Timer : 8, programmed : 45000, actual : 0 |
| 1135 | +Timer : 9, programmed : 50000, actual : 0 |
| 1136 | +Timer : 10, programmed : 55000, actual : 0 |
| 1137 | +Timer : 11, programmed : 60000, actual : 0 |
| 1138 | +Timer : 12, programmed : 65000, actual : 0 |
| 1139 | +Timer : 13, programmed : 70000, actual : 0 |
| 1140 | +Timer : 14, programmed : 75000, actual : 0 |
| 1141 | +Timer : 15, programmed : 80000, actual : 0 |
| 1142 | +SimpleTimer : 2, ms : 50345, Dms : 10055 |
| 1143 | +Timer : 0, programmed : 5000, actual : 5000 |
| 1144 | +Timer : 1, programmed : 10000, actual : 10000 |
| 1145 | +Timer : 2, programmed : 15000, actual : 15000 |
| 1146 | +Timer : 3, programmed : 20000, actual : 20000 |
| 1147 | +Timer : 4, programmed : 25000, actual : 25000 |
| 1148 | +Timer : 5, programmed : 30000, actual : 30009 |
| 1149 | +Timer : 6, programmed : 35000, actual : 35009 |
| 1150 | +Timer : 7, programmed : 40000, actual : 40009 |
| 1151 | +Timer : 8, programmed : 45000, actual : 45009 |
| 1152 | +Timer : 9, programmed : 50000, actual : 50009 |
| 1153 | +Timer : 10, programmed : 55000, actual : 0 |
| 1154 | +Timer : 11, programmed : 60000, actual : 0 |
| 1155 | +Timer : 12, programmed : 65000, actual : 0 |
| 1156 | +Timer : 13, programmed : 70000, actual : 0 |
| 1157 | +Timer : 14, programmed : 75000, actual : 0 |
| 1158 | +Timer : 15, programmed : 80000, actual : 0 |
| 1159 | +SimpleTimer : 2, ms : 60401, Dms : 10056 |
| 1160 | +Timer : 0, programmed : 5000, actual : 5000 |
| 1161 | +Timer : 1, programmed : 10000, actual : 10000 |
| 1162 | +Timer : 2, programmed : 15000, actual : 15000 |
| 1163 | +Timer : 3, programmed : 20000, actual : 20000 |
| 1164 | +Timer : 4, programmed : 25000, actual : 25000 |
| 1165 | +Timer : 5, programmed : 30000, actual : 30000 |
| 1166 | +Timer : 6, programmed : 35000, actual : 35009 |
| 1167 | +Timer : 7, programmed : 40000, actual : 40009 |
| 1168 | +Timer : 8, programmed : 45000, actual : 45009 |
| 1169 | +Timer : 9, programmed : 50000, actual : 50009 |
| 1170 | +Timer : 10, programmed : 55000, actual : 55009 |
| 1171 | +Timer : 11, programmed : 60000, actual : 60009 |
| 1172 | +Timer : 12, programmed : 65000, actual : 0 |
| 1173 | +Timer : 13, programmed : 70000, actual : 0 |
| 1174 | +Timer : 14, programmed : 75000, actual : 0 |
| 1175 | +Timer : 15, programmed : 80000, actual : 0 |
| 1176 | +SimpleTimer : 2, ms : 70458, Dms : 10057 |
| 1177 | +Timer : 0, programmed : 5000, actual : 5000 |
| 1178 | +Timer : 1, programmed : 10000, actual : 10000 |
| 1179 | +Timer : 2, programmed : 15000, actual : 15000 |
| 1180 | +Timer : 3, programmed : 20000, actual : 20000 |
| 1181 | +Timer : 4, programmed : 25000, actual : 25000 |
| 1182 | +Timer : 5, programmed : 30000, actual : 30000 |
| 1183 | +Timer : 6, programmed : 35000, actual : 35000 |
| 1184 | +Timer : 7, programmed : 40000, actual : 40009 |
| 1185 | +Timer : 8, programmed : 45000, actual : 45009 |
| 1186 | +Timer : 9, programmed : 50000, actual : 50009 |
| 1187 | +Timer : 10, programmed : 55000, actual : 55009 |
| 1188 | +Timer : 11, programmed : 60000, actual : 60009 |
| 1189 | +Timer : 12, programmed : 65000, actual : 65009 |
| 1190 | +Timer : 13, programmed : 70000, actual : 70009 |
| 1191 | +Timer : 14, programmed : 75000, actual : 0 |
| 1192 | +Timer : 15, programmed : 80000, actual : 0 |
| 1193 | +SimpleTimer : 2, ms : 80515, Dms : 10057 |
| 1194 | +Timer : 0, programmed : 5000, actual : 5000 |
| 1195 | +Timer : 1, programmed : 10000, actual : 10000 |
| 1196 | +Timer : 2, programmed : 15000, actual : 15000 |
| 1197 | +Timer : 3, programmed : 20000, actual : 20000 |
| 1198 | +Timer : 4, programmed : 25000, actual : 25000 |
| 1199 | +Timer : 5, programmed : 30000, actual : 30000 |
| 1200 | +Timer : 6, programmed : 35000, actual : 35000 |
| 1201 | +Timer : 7, programmed : 40000, actual : 40000 |
| 1202 | +Timer : 8, programmed : 45000, actual : 45009 |
| 1203 | +Timer : 9, programmed : 50000, actual : 50009 |
| 1204 | +Timer : 10, programmed : 55000, actual : 55009 |
| 1205 | +Timer : 11, programmed : 60000, actual : 60009 |
| 1206 | +Timer : 12, programmed : 65000, actual : 65009 |
| 1207 | +Timer : 13, programmed : 70000, actual : 70009 |
| 1208 | +Timer : 14, programmed : 75000, actual : 75009 |
| 1209 | +Timer : 15, programmed : 80000, actual : 80009 |
| 1210 | +SimpleTimer : 2, ms : 90573, Dms : 10058 |
| 1211 | +Timer : 0, programmed : 5000, actual : 5000 |
| 1212 | +Timer : 1, programmed : 10000, actual : 10000 |
| 1213 | +Timer : 2, programmed : 15000, actual : 15000 |
| 1214 | +Timer : 3, programmed : 20000, actual : 20000 |
| 1215 | +Timer : 4, programmed : 25000, actual : 25000 |
| 1216 | +Timer : 5, programmed : 30000, actual : 30000 |
| 1217 | +Timer : 6, programmed : 35000, actual : 35000 |
| 1218 | +Timer : 7, programmed : 40000, actual : 40000 |
| 1219 | +Timer : 8, programmed : 45000, actual : 45000 |
| 1220 | +Timer : 9, programmed : 50000, actual : 50009 |
| 1221 | +Timer : 10, programmed : 55000, actual : 55009 |
| 1222 | +Timer : 11, programmed : 60000, actual : 60009 |
| 1223 | +Timer : 12, programmed : 65000, actual : 65009 |
| 1224 | +Timer : 13, programmed : 70000, actual : 70009 |
| 1225 | +Timer : 14, programmed : 75000, actual : 75009 |
| 1226 | +Timer : 15, programmed : 80000, actual : 80009 |
| 1227 | +
|
| 1228 | +``` |
| 1229 | + |
| 1230 | + |
1050 | 1231 | --- |
1051 | 1232 | --- |
1052 | 1233 |
|
@@ -1078,6 +1259,11 @@ Sometimes, the library will only work if you update the board core to the latest |
1078 | 1259 |
|
1079 | 1260 | ## Releases |
1080 | 1261 |
|
| 1262 | +### Releases v1.4.0 |
| 1263 | + |
| 1264 | +1. Fix compiler errors due to conflict to some libraries. |
| 1265 | +2. Add complex examples. |
| 1266 | + |
1081 | 1267 | ### Releases v1.3.0 |
1082 | 1268 |
|
1083 | 1269 | 1. Add support to ESP32-S2 and ESP32-C3 |
@@ -1138,6 +1324,8 @@ Submit issues to: [ESP32TimerInterrupt issues](https://github.com/khoih-prog/ESP |
1138 | 1324 | 4. Similar features for remaining Arduino boards such as SAMD21, SAMD51, SAM-DUE, nRF52, ESP8266, STM32, etc. |
1139 | 1325 | 5. Add support to new ESP32-S2 |
1140 | 1326 | 6. Add support to new ESP32 core v1.0.6 |
| 1327 | +7. Fix compiler errors due to conflict to some libraries. |
| 1328 | +8. Add complex examples. |
1141 | 1329 |
|
1142 | 1330 | --- |
1143 | 1331 | --- |
|
0 commit comments