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.
### Release v1.5.0
1. Fix `multiple-definitions` linker error. Drop `src_cpp` and `src_h` directories
2. Add example [multiFileProject](examples/multiFileProject) to demo for multiple-file project.
3. Optimize library code by using `reference-passing` instead of `value-passing`
4. Update all examples
*[1. ISR_16_Timers_Array_Complex on Arduino megaAVR Nano Every](#1-isr_16_timers_array_complex-on-arduino-megaavr-nano-every)
@@ -68,6 +70,10 @@
68
70
---
69
71
---
70
72
73
+
### Important Change from v1.5.0
74
+
75
+
Please have a look at [HOWTO Fix `Multiple Definitions` Linker Error](#howto-fix-multiple-definitions-linker-error)
76
+
71
77
### Why do we need this [megaAVR_TimerInterrupt library](https://github.com/khoih-prog/megaAVR_TimerInterrupt)
72
78
73
79
### Features
@@ -124,9 +130,11 @@ The catch is your function is now part of an ISR (Interrupt Service Routine), an
124
130
125
131
## Prerequisites
126
132
127
-
1.[`Arduino IDE 1.8.13+` for Arduino](https://www.arduino.cc/en/Main/Software)
133
+
1.[`Arduino IDE 1.8.19+` for Arduino](https://github.com/arduino/Arduino). [](https://github.com/arduino/Arduino/releases/latest)
128
134
2.[`Arduino megaAVR core 1.8.7+`](https://github.com/arduino/ArduinoCore-megaavr/releases) for Arduino megaAVR boards. Use Arduino Board Manager to install.
129
-
135
+
3. To use with certain example
136
+
-[`SimpleTimer library`](https://github.com/jfturcot/SimpleTimer) for [ISR_Timers_Array_Simple](examples/ISR_Timers_Array_Simple) and [ISR_16_Timers_Array_Complex](examples/ISR_16_Timers_Array_Complex) examples.
137
+
130
138
---
131
139
---
132
140
@@ -158,24 +166,29 @@ Another way to install is to:
158
166
159
167
### HOWTO Fix `Multiple Definitions` Linker Error
160
168
161
-
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.
162
170
163
-
1.**scr_h** for new h-only files
164
-
2.**src_cpp** for standard h/cpp files
171
+
You can include these `.hpp` files
165
172
166
-
besides the standard **src** directory.
173
+
```
174
+
// Can be included as many times as necessary, without `Multiple Definitions` Linker Error
2.**Copy all the files in src_cpp directory into src.**
172
-
3. Close then reopen the application code in Arduino IDE, etc. to recompile from scratch.
181
+
in many files. But be sure to use the following `.h` files **in just 1 `.h`, `.cpp` or `.ino` file**, which must **not be included in any other file**, to avoid `Multiple Definitions` Linker Error
173
182
174
-
To re-use the **new h-only** way, just
183
+
```
184
+
// To be included only in main(), .ino with setup() to avoid `Multiple Definitions` Linker Error
0 commit comments