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.
### Releases v1.5.0
1. Fix doubled time for ESP32_C3, ESP32_S2 and ESP32_S3. Check [Error in the value defined by TIMER0_INTERVAL_MS #28](https://github.com/khoih-prog/ESP32_New_TimerInterrupt/issues/28)
2. Modify examples to avoid using `LED_BUILTIN` / `GPIO2` as it can cause crash in some boards, such as `ESP32_C3`
3. Use `allman astyle` and add `utils`
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+27-5
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ If you don't find anything, please [open a new issue](https://github.com/khoih-p
15
15
Please ensure to specify the following:
16
16
17
17
* Arduino IDE version (e.g. 1.8.19) or Platform.io version
18
-
*`ESP32` Core Version (e.g. ESP32 core v2.0.4)
18
+
*`ESP32` Core Version (e.g. ESP32 core v2.0.5)
19
19
*`ESP32` Board type (e.g. ESP32_DEV Module, etc.)
20
20
*`ESP32-S2` Board type (e.g. ESP32S2_DEV Module, ESP32_S2_Saola, etc.)
21
21
*`ESP32_S3` Board type (e.g. ESP32S3_DEV, ESP32_S3_BOX, UM TINYS3, UM PROS3, UM FEATHERS3, etc.)
@@ -31,28 +31,50 @@ Please ensure to specify the following:
31
31
32
32
```
33
33
Arduino IDE version: 1.8.19
34
-
ESP32 core v2.0.4
34
+
ESP32 core v2.0.5
35
35
ESP32S3_DEV Module
36
36
OS: Ubuntu 20.04 LTS
37
-
Linux xy-Inspiron-3593 5.15.0-41-generic #44~20.04.1-Ubuntu SMP Fri Jun 24 13:27:29 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
37
+
Linux xy-Inspiron-3593 5.15.0-52-generic #58~20.04.1-Ubuntu SMP Thu Oct 13 13:09:46 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
38
38
39
39
Context:
40
-
I encountered a crash while using ESP32_New_TimerInterrupt.
41
-
40
+
I encountered a crash while using this library
42
41
Steps to reproduce:
43
42
1. ...
44
43
2. ...
45
44
3. ...
46
45
4. ...
47
46
```
48
47
48
+
### Additional context
49
+
50
+
Add any other context about the problem here.
51
+
52
+
---
53
+
49
54
### Sending Feature Requests
50
55
51
56
Feel free to post feature requests. It's helpful if you can explain exactly why the feature would be useful.
52
57
53
58
There are usually some outstanding feature requests in the [existing issues list](https://github.com/khoih-prog/ESP32_New_TimerInterrupt/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement), feel free to add comments to them.
54
59
60
+
---
61
+
55
62
### Sending Pull Requests
56
63
57
64
Pull Requests with changes and fixes are also welcome!
58
65
66
+
Please use the `astyle` to reformat the updated library code as follows (demo for Ubuntu Linux)
67
+
68
+
1. Change directory to the library GitHub
69
+
70
+
```
71
+
xy@xy-Inspiron-3593:~$ cd Arduino/xy/ESP32_New_TimerInterrupt_GitHub/
<ahref="https://www.buymeacoffee.com/khoihprog6"title="Donate to my libraries using BuyMeACoffee"><imgsrc="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png"alt="Donate to my libraries using BuyMeACoffee"style="height: 50px!important;width: 181px!important;" ></a>
10
11
<ahref="https://www.buymeacoffee.com/khoihprog6"title="Donate to my libraries using BuyMeACoffee"><imgsrc="https://img.shields.io/badge/buy%20me%20a%20coffee-donate-orange.svg?logo=buy-me-a-coffee&logoColor=FFDD00"style="height: 20px!important;width: 200px!important;" ></a>
@@ -133,7 +136,7 @@ The catch is **your function is now part of an ISR (Interrupt Service Routine),
133
136
## Prerequisites
134
137
135
138
1.[`Arduino IDE 1.8.19+` for Arduino](https://github.com/arduino/Arduino). [](https://github.com/arduino/Arduino/releases/latest)
136
-
2.[`ESP32 Core 2.0.4+`](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/).
139
+
2.[`ESP32 Core 2.0.5+`](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/).
137
140
138
141
---
139
142
---
@@ -152,9 +155,9 @@ You can also use this link [ page.
155
-
2. Download the latest release `ESP32_New_TimerInterrupt-master.zip`.
156
-
3. Extract the zip file to `ESP32_New_TimerInterrupt-master` directory
157
-
4. Copy whole `ESP32_New_TimerInterrupt-master` folder to Arduino libraries' directory such as `~/Arduino/libraries/`.
158
+
2. Download the latest release `ESP32_New_TimerInterrupt-main.zip`.
159
+
3. Extract the zip file to `ESP32_New_TimerInterrupt-main` directory
160
+
4. Copy whole `ESP32_New_TimerInterrupt-main` folder to Arduino libraries' directory such as `~/Arduino/libraries/`.
158
161
159
162
---
160
163
@@ -176,13 +179,13 @@ The current library implementation, using `xyz-Impl.h` instead of standard `xyz.
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
187
185
-
```
188
+
```cpp
186
189
// To be included only in main(), .ino with setup() to avoid `Multiple Definitions` Linker Error
@@ -198,33 +201,34 @@ Please have a look at [**ESP_WiFiManager Issue 39: Not able to read analog port
198
201
199
202
#### 2. ESP32 ADCs functions
200
203
201
-
- ADC1 controls ADC function for pins **GPIO32-GPIO39**
202
-
- ADC2 controls ADC function for pins **GPIO0, 2, 4, 12-15, 25-27**
204
+
-`ADC1` controls ADC function for pins **GPIO32-GPIO39**
205
+
-`ADC2` controls ADC function for pins **GPIO0, 2, 4, 12-15, 25-27**
203
206
204
207
#### 3.. ESP32 WiFi uses ADC2 for WiFi functions
205
208
206
-
Look in file [**adc_common.c**](https://github.com/espressif/esp-idf/blob/master/components/driver/adc_common.c#L61)
209
+
Look in file [**adc_common.c**](https://github.com/espressif/esp-idf/blob/master/components/driver/adc_common.c)
207
210
208
-
> In ADC2, there're two locks used for different cases:
211
+
> In `ADC2`, there're two locks used for different cases:
209
212
> 1. lock shared with app and Wi-Fi:
210
213
> ESP32:
211
-
> When Wi-Fi using the ADC2, we assume it will never stop, so app checks the lock and returns immediately if failed.
214
+
> When Wi-Fi using the `ADC2`, we assume it will never stop, so app checks the lock and returns immediately if failed.
212
215
> ESP32S2:
213
216
> The controller's control over the ADC is determined by the arbiter. There is no need to control by lock.
214
217
>
215
218
> 2. lock shared between tasks:
216
-
> when several tasks sharing the ADC2, we want to guarantee
219
+
> when several tasks sharing the `ADC2`, we want to guarantee
217
220
> all the requests will be handled.
218
221
> Since conversions are short (about 31us), app returns the lock very soon,
219
222
> we use a spinlock to stand there waiting to do conversions one by one.
220
223
>
221
224
> adc2_spinlock should be acquired first, then adc2_wifi_lock or rtc_spinlock.
222
225
223
226
224
-
- In order to use ADC2 for other functions, we have to **acquire complicated firmware locks and very difficult to do**
225
-
- So, it's not advisable to use ADC2 with WiFi/BlueTooth (BT/BLE).
226
-
- Use ADC1, and pins GPIO32-GPIO39
227
-
- If somehow it's a must to use those pins serviced by ADC2 (**GPIO0, 2, 4, 12, 13, 14, 15, 25, 26 and 27**), use the **fix mentioned at the end** of [**ESP_WiFiManager Issue 39: Not able to read analog port when using the autoconnect example**](https://github.com/khoih-prog/ESP_WiFiManager/issues/39) to work with ESP32 WiFi/BlueTooth (BT/BLE).
227
+
- In order to use `ADC2` for other functions, we have to **acquire complicated firmware locks and very difficult to do**
228
+
- So, it's not advisable to use `ADC2` with WiFi/BlueTooth (BT/BLE).
229
+
- Use `ADC1`, and pins `GPIO32-GPIO39`
230
+
- If somehow it's a must to use those pins serviced by `ADC2` (**GPIO0, 2, 4, 12, 13, 14, 15, 25, 26 and 27**), use the **fix mentioned at the end** of [**ESP_WiFiManager Issue 39: Not able to read analog port when using the autoconnect example**](https://github.com/khoih-prog/ESP_WiFiManager/issues/39) to work with ESP32 WiFi/BlueTooth (BT/BLE).
The following is the sample terminal output when running example [TimerInterruptTest](examples/TimerInterruptTest) to demonstrate how to start/stop Hardware Timers.
<ahref="https://www.buymeacoffee.com/khoihprog6"title="Donate to my libraries using BuyMeACoffee"><imgsrc="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png"alt="Donate to my libraries using BuyMeACoffee"style="height: 50px!important;width: 181px!important;" ></a>
11
+
<ahref="https://www.buymeacoffee.com/khoihprog6"title="Donate to my libraries using BuyMeACoffee"><imgsrc="https://img.shields.io/badge/buy%20me%20a%20coffee-donate-orange.svg?logo=buy-me-a-coffee&logoColor=FFDD00"style="height: 20px!important;width: 200px!important;" ></a>
1. Fix doubled time for ESP32_C3, ESP32_S2 and ESP32_S3. Check [Error in the value defined by TIMER0_INTERVAL_MS #28](https://github.com/khoih-prog/ESP32_New_TimerInterrupt/issues/28)
39
+
2. Modify examples to avoid using `LED_BUILTIN` / `GPIO2` as it can cause crash in some boards, such as `ESP32_C3`
40
+
3. Use `allman astyle` and add `utils`
41
+
29
42
### Releases v1.4.0
30
43
31
44
1. Suppress warnings for ESP32_C3, ESP32_S2 and ESP32_S3
0 commit comments