|
47 | 47 | * [5. ISR_16_Timers_Array on ESP32S2_DEV](#5-isr_16_timers_array-on-esp32s2_dev)
|
48 | 48 | * [Debug](#debug)
|
49 | 49 | * [Troubleshooting](#troubleshooting)
|
50 |
| -* [Releases](#releases) |
51 | 50 | * [Issues](#issues)
|
52 | 51 | * [TO DO](#to-do)
|
53 | 52 | * [DONE](#done)
|
|
64 | 63 | ### Important Notes
|
65 | 64 |
|
66 | 65 | 1. Avoid using `PIN_D1 (GPIO1)` in your code due to issue with core v2.0.0 and v2.0.1. Check [ESP32 Core v2.0.1 / 2.0.1 RC1 crashes if using pinMode with GPIO1 #5868](https://github.com/espressif/arduino-esp32/issues/5868). Only OK with core v1.0.6-
|
67 |
| -2. Don't use `float` in `ISR` due to issue with core v2.0.0 and v2.0.1. Only OK with core v1.0.6-. |
| 66 | +2. Don't use `float` in `ISR` due to issue with core v2.0.0 and v2.0.1. Check [ESP32 Core v2.0.1 / 2.0.1 RC1 crashes if using float in ISR #5892](https://github.com/espressif/arduino-esp32/issues/5892). Only OK with core v1.0.6-. |
68 | 67 |
|
69 | 68 | ### Features
|
70 | 69 |
|
@@ -127,8 +126,8 @@ The catch is **your function is now part of an ISR (Interrupt Service Routine),
|
127 | 126 |
|
128 | 127 | ## Prerequisites
|
129 | 128 |
|
130 |
| -1. [`Arduino IDE 1.8.16+` for Arduino](https://www.arduino.cc/en/Main/Software) |
131 |
| -2. [`ESP32 Core 2.0.1+`](https://github.com/espressif/arduino-esp32) for ESP32-based boards (ESP32, ESP32_S2 and ESP32_C3). [](https://github.com/espressif/arduino-esp32/releases/latest/). |
| 129 | +1. [`Arduino IDE 1.8.19+` for Arduino](https://github.com/arduino/Arduino). [](https://github.com/arduino/Arduino/releases/latest) |
| 130 | +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/). |
132 | 131 |
|
133 | 132 | ---
|
134 | 133 | ---
|
@@ -167,24 +166,20 @@ Another way to install is to:
|
167 | 166 |
|
168 | 167 | ### HOWTO Fix `Multiple Definitions` Linker Error
|
169 | 168 |
|
170 |
| -The current library implementation, using **xyz-Impl.h instead of standard xyz.cpp**, possibly creates certain `Multiple Definitions` Linker error in certain use cases. Although it's simple to just modify several lines of code, either in the library or in the application, the library is adding 2 more source directories |
| 169 | +The current library implementation, using `xyz-Impl.h` instead of standard `xyz.cpp`, possibly creates certain `Multiple Definitions` Linker error in certain use cases. |
171 | 170 |
|
172 |
| -1. **scr_h** for new h-only files |
173 |
| -2. **src_cpp** for standard h/cpp files |
| 171 | +You can use |
174 | 172 |
|
175 |
| -besides the standard **src** directory. |
176 |
| - |
177 |
| -To use the **old standard cpp** way, locate this library' directory, then just |
178 |
| - |
179 |
| -1. **Delete the all the files in src directory.** |
180 |
| -2. **Copy all the files in src_cpp directory into src.** |
181 |
| -3. Close then reopen the application code in Arduino IDE, etc. to recompile from scratch. |
| 173 | +``` |
| 174 | +#include <ESP32_New_ISR_Timer.hpp> //https://github.com/khoih-prog/ESP32_New_TimerInterrupt |
| 175 | +``` |
182 | 176 |
|
183 |
| -To re-use the **new h-only** way, just |
| 177 | +in many files. But be sure to use the following `#include <ESP32_New_ISR_Timer.h>` **in just 1 `.h`, `.cpp` or `.ino` file**, which must **not be included in any other file**, to avoid `Multiple Definitions` Linker Error |
184 | 178 |
|
185 |
| -1. **Delete the all the files in src directory.** |
186 |
| -2. **Copy the files in src_h directory into src.** |
187 |
| -3. Close then reopen the application code in Arduino IDE, etc. to recompile from scratch. |
| 179 | +``` |
| 180 | +// To be included only in main(), .ino with setup() to avoid `Multiple Definitions` Linker Error |
| 181 | +#include <ESP32_New_ISR_Timer.h> //https://github.com/khoih-prog/ESP32_New_TimerInterrupt |
| 182 | +``` |
188 | 183 |
|
189 | 184 | ---
|
190 | 185 | ---
|
@@ -617,7 +612,7 @@ The following is the sample terminal output when running example [TimerInterrupt
|
617 | 612 | ```
|
618 | 613 |
|
619 | 614 | Starting TimerInterruptTest on ESP32_DEV
|
620 |
| -ESP32_New_TimerInterrupt v1.0.1 |
| 615 | +ESP32_New_TimerInterrupt v1.1.0 |
621 | 616 | CPU Frequency = 240 MHz
|
622 | 617 | [TISR] ESP32_TimerInterrupt: _timerNo = 0 , _fre = 1000000
|
623 | 618 | [TISR] TIMER_BASE_CLK = 80000000 , TIMER_DIVIDER = 80
|
@@ -650,7 +645,7 @@ The following is the sample terminal output when running example [Change_Interva
|
650 | 645 |
|
651 | 646 | ```
|
652 | 647 | Starting Change_Interval on ESP32_DEV
|
653 |
| -ESP32_New_TimerInterrupt v1.0.1 |
| 648 | +ESP32_New_TimerInterrupt v1.1.0 |
654 | 649 | CPU Frequency = 240 MHz
|
655 | 650 | Starting ITimer0 OK, millis() = 136
|
656 | 651 | Starting ITimer1 OK, millis() = 147
|
@@ -679,7 +674,7 @@ The following is the sample terminal output when running example [Argument_None]
|
679 | 674 |
|
680 | 675 | ```
|
681 | 676 | Starting Argument_None on ESP32S2_DEV
|
682 |
| -ESP32_New_TimerInterrupt v1.0.1 |
| 677 | +ESP32_New_TimerInterrupt v1.1.0 |
683 | 678 | CPU Frequency = 240 MHz
|
684 | 679 | [TISR] ESP32_S2_TimerInterrupt: _timerNo = 0 , _fre = 1000000
|
685 | 680 | [TISR] TIMER_BASE_CLK = 80000000 , TIMER_DIVIDER = 80
|
@@ -731,7 +726,7 @@ The following is the sample terminal output when running example [ISR_16_Timers_
|
731 | 726 |
|
732 | 727 | ```
|
733 | 728 | Starting ISR_16_Timers_Array_Complex on ESP32C3_DEV
|
734 |
| -ESP32_New_TimerInterrupt v1.0.1 |
| 729 | +ESP32_New_TimerInterrupt v1.1.0 |
735 | 730 | CPU Frequency = 160 MHz
|
736 | 731 | Starting ITimer OK, millis() = 2187
|
737 | 732 | SimpleTimer : 2, ms : 12193, Dms : 10004
|
@@ -882,7 +877,7 @@ The following is the sample terminal output when running example [ISR_16_Timers_
|
882 | 877 |
|
883 | 878 | ```
|
884 | 879 | Starting ISR_16_Timers_Array on ESP32S2_DEV
|
885 |
| -ESP32_New_TimerInterrupt v1.0.1 |
| 880 | +ESP32_New_TimerInterrupt v1.1.0 |
886 | 881 | CPU Frequency = 240 MHz
|
887 | 882 | Starting ITimer OK, millis() = 2538
|
888 | 883 | simpleTimerDoingSomething2s: Delta programmed ms = 2000, actual = 10008
|
@@ -918,20 +913,12 @@ Sometimes, the library will only work if you update the board core to the latest
|
918 | 913 | ---
|
919 | 914 | ---
|
920 | 915 |
|
921 |
| -## Releases |
922 |
| - |
923 |
| -### Releases v1.0.0 |
924 |
| - |
925 |
| -1. Initial coding for ESP32, ESP32_S2, ESP32_C3 boards with [ESP32 core v2.0.0-rc1+](https://github.com/espressif/arduino-esp32/releases/tag/2.0.0-rc1) |
926 |
| - |
927 |
| - |
928 |
| ---- |
929 |
| ---- |
930 | 916 |
|
931 | 917 | ### Issues
|
932 | 918 |
|
933 | 919 | Submit issues to: [ESP32_New_TimerInterrupt issues](https://github.com/khoih-prog/ESP32_New_TimerInterrupt/issues)
|
934 | 920 |
|
| 921 | +--- |
935 | 922 | ---
|
936 | 923 |
|
937 | 924 | ## TO DO
|
|
0 commit comments