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

Commit 9e21b79

Browse files
authored
v1.6.0 to add support to MegaCoreX core
### Release v1.6.0 1. Add support to `MegaCoreX` core, including ATmega4809, ATmega4808, ATmega3209, ATmega3208, ATmega1609, ATmega1608, ATmega809 and ATmega808 2. Fix compiler warning 3. Update all examples
1 parent 3102f22 commit 9e21b79

28 files changed

+392
-75
lines changed

CONTRIBUTING.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ If you don't find anything, please [open a new issue](https://github.com/khoih-p
1515
Please ensure to specify the following:
1616

1717
* Arduino IDE version (e.g. 1.8.19) or Platform.io version
18-
* `Arduino megaAVR` Core Version (e.g. Arduino megaAVR core v1.8.7)
18+
* `Arduino megaAVR` or `MegaCoreX` Core Version (e.g. Arduino megaAVR core v1.8.7 or MegaCoreX core v1.0.9)
1919
* Contextual information (e.g. what you were trying to achieve)
2020
* Simplest possible steps to reproduce
2121
* Anything that might be relevant in your opinion, such as:
@@ -29,7 +29,7 @@ Please ensure to specify the following:
2929
Arduino IDE version: 1.8.19
3030
Arduino megaAVR Core Version 1.8.7
3131
OS: Ubuntu 20.04 LTS
32-
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
32+
Linux xy-Inspiron-3593 5.4.0-97-generic #110-Ubuntu SMP Thu Jan 13 18:22:13 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
3333
3434
Context:
3535
I encountered a crash while trying to use the Timer Interrupt.
@@ -49,3 +49,4 @@ There are usually some outstanding feature requests in the [existing issues list
4949
### Sending Pull Requests
5050

5151
Pull Requests with changes and fixes are also welcome!
52+

README.md

Lines changed: 179 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
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/megaAVR_TimerInterrupt.svg)](http://github.com/khoih-prog/megaAVR_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>
10+
11+
12+
---
13+
---
14+
915
## Table of Contents
1016

1117
* [Important Change from v1.5.0](#Important-Change-from-v150)
@@ -132,7 +138,8 @@ The catch is your function is now part of an ISR (Interrupt Service Routine), an
132138

133139
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)
134140
2. [`Arduino megaAVR core 1.8.7+`](https://github.com/arduino/ArduinoCore-megaavr/releases) for Arduino megaAVR boards. Use Arduino Board Manager to install.
135-
3. To use with certain example
141+
3. [`MegaCoreX megaAVR core 1.0.9+`](https://github.com/MCUdude/MegaCoreX/releases) for Arduino megaAVR boards. [![GitHub release](https://img.shields.io/github/release/MCUdude/MegaCoreX.svg)](https://github.com/MCUdude/MegaCoreX/releases/latest). Follow [**How to install**](https://github.com/MCUdude/MegaCoreX#how-to-install).
142+
4. To use with certain example
136143
- [`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.
137144

138145
---
@@ -427,8 +434,11 @@ void setup()
427434
### Example [ISR_16_Timers_Array_Complex](examples/ISR_16_Timers_Array_Complex)
428435

429436
```cpp
430-
#if !( defined(__AVR_ATmega4809__) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) )
431-
#error This is designed only for Arduino megaAVR board! Please check your Tools->Board setting.
437+
#if !( defined(__AVR_ATmega4809__) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) || \
438+
defined(ARDUINO_AVR_ATmega4809) || defined(ARDUINO_AVR_ATmega4808) || defined(ARDUINO_AVR_ATmega3209) || \
439+
defined(ARDUINO_AVR_ATmega3208) || defined(ARDUINO_AVR_ATmega1609) || defined(ARDUINO_AVR_ATmega1608) || \
440+
defined(ARDUINO_AVR_ATmega809) || defined(ARDUINO_AVR_ATmega808) )
441+
#error This is designed only for Arduino or MegaCoreX megaAVR board! Please check your Tools->Board setting
432442
#endif
433443

434444
// These define's must be placed at the beginning before #include "megaAVR_TimerInterrupt.h"
@@ -448,7 +458,7 @@ void setup()
448458

449459
#define USE_TIMER_0 false
450460
#define USE_TIMER_1 true
451-
#define USE_TIMER_2 true
461+
#define USE_TIMER_2 false
452462
#define USE_TIMER_3 false
453463

454464
// To be included only in main(), .ino with setup() to avoid `Multiple Definitions` Linker Error
@@ -924,8 +934,6 @@ Timer : 12, programmed : 65000, actual : 65014
924934
Timer : 13, programmed : 70000, actual : 70008
925935
Timer : 14, programmed : 75000, actual : 75012
926936
Timer : 15, programmed : 80000, actual : 80016
927-
928-
929937
```
930938
931939
---
@@ -1233,6 +1241,169 @@ Changing Frequency, Timer1 = 10000
12331241
```
12341242
12351243
1244+
---
1245+
1246+
1247+
### 1. ISR_16_Timers_Array_Complex on Arduino megaAVR Nano Every using MegaCoreX
1248+
1249+
The following is the sample terminal output when running example [ISR_16_Timers_Array_Complex](examples/ISR_16_Timers_Array_Complex) on **Arduino megaAVR Nano Every using MegaCoreX** to demonstrate the accuracy of ISR Hardware Timer, **especially when system is very busy**. The ISR timer is **programmed for 2s, is activated exactly after 2.000s !!!**
1250+
1251+
While software timer, **programmed for 2s, is activated after more than 10.000s in loop().
1252+
1253+
```
1254+
Starting ISR_16_Timers_Array_Complex on MegaCoreX ATmega4809
1255+
megaAVR_TimerInterrupt v1.6.0
1256+
CPU Frequency = 16 MHz
1257+
TCB Clock Frequency = 16MHz for highest accuracy
1258+
[TISR] TCB1
1259+
[TISR] ==================
1260+
[TISR] Init, Timer = 1
1261+
[TISR] CTRLB = 0
1262+
[TISR] CCMP = 65535
1263+
[TISR] INTCTRL = 0
1264+
[TISR] CTRLA = 1
1265+
[TISR] ==================
1266+
[TISR] Frequency = 200.00, CLK_TCB_FREQ = 16000000
1267+
[TISR] setFrequency: _CCMPValueRemaining = 80000
1268+
Starting ITimer1 OK, millis() = 12
1269+
SimpleTimer : 2, ms : 10013, Dms : 10013
1270+
Timer : 0, programmed : 5000, actual : 5016
1271+
Timer : 1, programmed : 10000, actual : 10016
1272+
Timer : 2, programmed : 15000, actual : 0
1273+
Timer : 3, programmed : 20000, actual : 0
1274+
Timer : 4, programmed : 25000, actual : 0
1275+
Timer : 5, programmed : 30000, actual : 0
1276+
Timer : 6, programmed : 35000, actual : 0
1277+
Timer : 7, programmed : 40000, actual : 0
1278+
Timer : 8, programmed : 45000, actual : 0
1279+
Timer : 9, programmed : 50000, actual : 0
1280+
Timer : 10, programmed : 55000, actual : 0
1281+
Timer : 11, programmed : 60000, actual : 0
1282+
Timer : 12, programmed : 65000, actual : 0
1283+
Timer : 13, programmed : 70000, actual : 0
1284+
Timer : 14, programmed : 75000, actual : 0
1285+
Timer : 15, programmed : 80000, actual : 0
1286+
SimpleTimer : 2, ms : 20072, Dms : 10059
1287+
Timer : 0, programmed : 5000, actual : 5000
1288+
Timer : 1, programmed : 10000, actual : 10000
1289+
Timer : 2, programmed : 15000, actual : 15016
1290+
Timer : 3, programmed : 20000, actual : 20016
1291+
Timer : 4, programmed : 25000, actual : 0
1292+
Timer : 5, programmed : 30000, actual : 0
1293+
Timer : 6, programmed : 35000, actual : 0
1294+
Timer : 7, programmed : 40000, actual : 0
1295+
Timer : 8, programmed : 45000, actual : 0
1296+
Timer : 9, programmed : 50000, actual : 0
1297+
Timer : 10, programmed : 55000, actual : 0
1298+
Timer : 11, programmed : 60000, actual : 0
1299+
Timer : 12, programmed : 65000, actual : 0
1300+
Timer : 13, programmed : 70000, actual : 0
1301+
Timer : 14, programmed : 75000, actual : 0
1302+
Timer : 15, programmed : 80000, actual : 0
1303+
SimpleTimer : 2, ms : 30132, Dms : 10060
1304+
Timer : 0, programmed : 5000, actual : 5000
1305+
Timer : 1, programmed : 10000, actual : 10001
1306+
Timer : 2, programmed : 15000, actual : 15001
1307+
Timer : 3, programmed : 20000, actual : 20016
1308+
Timer : 4, programmed : 25000, actual : 25017
1309+
Timer : 5, programmed : 30000, actual : 30017
1310+
Timer : 6, programmed : 35000, actual : 0
1311+
Timer : 7, programmed : 40000, actual : 0
1312+
Timer : 8, programmed : 45000, actual : 0
1313+
Timer : 9, programmed : 50000, actual : 0
1314+
Timer : 10, programmed : 55000, actual : 0
1315+
Timer : 11, programmed : 60000, actual : 0
1316+
Timer : 12, programmed : 65000, actual : 0
1317+
Timer : 13, programmed : 70000, actual : 0
1318+
Timer : 14, programmed : 75000, actual : 0
1319+
Timer : 15, programmed : 80000, actual : 0
1320+
SimpleTimer : 2, ms : 40192, Dms : 10060
1321+
Timer : 0, programmed : 5000, actual : 5000
1322+
Timer : 1, programmed : 10000, actual : 10000
1323+
Timer : 2, programmed : 15000, actual : 15001
1324+
Timer : 3, programmed : 20000, actual : 20001
1325+
Timer : 4, programmed : 25000, actual : 25017
1326+
Timer : 5, programmed : 30000, actual : 30017
1327+
Timer : 6, programmed : 35000, actual : 35017
1328+
Timer : 7, programmed : 40000, actual : 40017
1329+
Timer : 8, programmed : 45000, actual : 0
1330+
Timer : 9, programmed : 50000, actual : 0
1331+
Timer : 10, programmed : 55000, actual : 0
1332+
Timer : 11, programmed : 60000, actual : 0
1333+
Timer : 12, programmed : 65000, actual : 0
1334+
Timer : 13, programmed : 70000, actual : 0
1335+
Timer : 14, programmed : 75000, actual : 0
1336+
Timer : 15, programmed : 80000, actual : 0
1337+
SimpleTimer : 2, ms : 50253, Dms : 10061
1338+
Timer : 0, programmed : 5000, actual : 5000
1339+
Timer : 1, programmed : 10000, actual : 10000
1340+
Timer : 2, programmed : 15000, actual : 15000
1341+
Timer : 3, programmed : 20000, actual : 20001
1342+
Timer : 4, programmed : 25000, actual : 25000
1343+
Timer : 5, programmed : 30000, actual : 30017
1344+
Timer : 6, programmed : 35000, actual : 35017
1345+
Timer : 7, programmed : 40000, actual : 40017
1346+
Timer : 8, programmed : 45000, actual : 45017
1347+
Timer : 9, programmed : 50000, actual : 50017
1348+
Timer : 10, programmed : 55000, actual : 0
1349+
Timer : 11, programmed : 60000, actual : 0
1350+
Timer : 12, programmed : 65000, actual : 0
1351+
Timer : 13, programmed : 70000, actual : 0
1352+
Timer : 14, programmed : 75000, actual : 0
1353+
Timer : 15, programmed : 80000, actual : 0
1354+
SimpleTimer : 2, ms : 60315, Dms : 10062
1355+
Timer : 0, programmed : 5000, actual : 5000
1356+
Timer : 1, programmed : 10000, actual : 10000
1357+
Timer : 2, programmed : 15000, actual : 15000
1358+
Timer : 3, programmed : 20000, actual : 20000
1359+
Timer : 4, programmed : 25000, actual : 25000
1360+
Timer : 5, programmed : 30000, actual : 30000
1361+
Timer : 6, programmed : 35000, actual : 35017
1362+
Timer : 7, programmed : 40000, actual : 40017
1363+
Timer : 8, programmed : 45000, actual : 45017
1364+
Timer : 9, programmed : 50000, actual : 50017
1365+
Timer : 10, programmed : 55000, actual : 55017
1366+
Timer : 11, programmed : 60000, actual : 60017
1367+
Timer : 12, programmed : 65000, actual : 0
1368+
Timer : 13, programmed : 70000, actual : 0
1369+
Timer : 14, programmed : 75000, actual : 0
1370+
Timer : 15, programmed : 80000, actual : 0
1371+
SimpleTimer : 2, ms : 70377, Dms : 10062
1372+
Timer : 0, programmed : 5000, actual : 5000
1373+
Timer : 1, programmed : 10000, actual : 9996
1374+
Timer : 2, programmed : 15000, actual : 15000
1375+
Timer : 3, programmed : 20000, actual : 20000
1376+
Timer : 4, programmed : 25000, actual : 25000
1377+
Timer : 5, programmed : 30000, actual : 30000
1378+
Timer : 6, programmed : 35000, actual : 34996
1379+
Timer : 7, programmed : 40000, actual : 40017
1380+
Timer : 8, programmed : 45000, actual : 45017
1381+
Timer : 9, programmed : 50000, actual : 50017
1382+
Timer : 10, programmed : 55000, actual : 55017
1383+
Timer : 11, programmed : 60000, actual : 60017
1384+
Timer : 12, programmed : 65000, actual : 65013
1385+
Timer : 13, programmed : 70000, actual : 70013
1386+
Timer : 14, programmed : 75000, actual : 0
1387+
Timer : 15, programmed : 80000, actual : 0
1388+
SimpleTimer : 2, ms : 80440, Dms : 10063
1389+
Timer : 0, programmed : 5000, actual : 5000
1390+
Timer : 1, programmed : 10000, actual : 10000
1391+
Timer : 2, programmed : 15000, actual : 14996
1392+
Timer : 3, programmed : 20000, actual : 19996
1393+
Timer : 4, programmed : 25000, actual : 24996
1394+
Timer : 5, programmed : 30000, actual : 30000
1395+
Timer : 6, programmed : 35000, actual : 34996
1396+
Timer : 7, programmed : 40000, actual : 39996
1397+
Timer : 8, programmed : 45000, actual : 45017
1398+
Timer : 9, programmed : 50000, actual : 50017
1399+
Timer : 10, programmed : 55000, actual : 55017
1400+
Timer : 11, programmed : 60000, actual : 60017
1401+
Timer : 12, programmed : 65000, actual : 65013
1402+
Timer : 13, programmed : 70000, actual : 70013
1403+
Timer : 14, programmed : 75000, actual : 75013
1404+
Timer : 15, programmed : 80000, actual : 80013
1405+
```
1406+
12361407
---
12371408
---
12381409
@@ -1288,6 +1459,8 @@ Submit issues to: [megaAVR_TimerInterrupt issues](https://github.com/khoih-prog/
12881459
9. Selectable **TCB Clock 16MHz, 8MHz or 250KHz** depending on necessary accuracy
12891460
10. Fix `multiple-definitions` linker error
12901461
11. Optimize library code by using `reference-passing` instead of `value-passing`
1462+
12. Add support to `MegaCoreX` core, including ATmega4809, ATmega4808, ATmega3209, ATmega3208, ATmega1609, ATmega1608, ATmega809 and ATmega808
1463+
12911464

12921465
---
12931466
---

changelog.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
## Table of Contents
1010

1111
* [Changelog](#changelog)
12+
* [Release v1.6.0](#release-v160)
1213
* [Release v1.5.0](#release-v150)
1314
* [Release v1.4.0](#release-v140)
1415
* [Release v1.3.0](#release-v130)
@@ -21,6 +22,12 @@
2122

2223
## Changelog
2324

25+
### Release v1.6.0
26+
27+
1. Add support to `MegaCoreX` core, including ATmega4809, ATmega4808, ATmega3209, ATmega3208, ATmega1609, ATmega1608, ATmega809 and ATmega808
28+
2. Fix compiler warning
29+
3. Update all examples
30+
2431
### Release v1.5.0
2532

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

examples/Argument_Complex/Argument_Complex.ino

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,11 @@
1313
This important feature is absolutely necessary for mission-critical tasks.
1414
*****************************************************************************************************************************/
1515

16-
#if !( defined(__AVR_ATmega4809__) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) )
17-
#error This is designed only for Arduino megaAVR board! Please check your Tools->Board setting.
16+
#if !( defined(__AVR_ATmega4809__) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) || \
17+
defined(ARDUINO_AVR_ATmega4809) || defined(ARDUINO_AVR_ATmega4808) || defined(ARDUINO_AVR_ATmega3209) || \
18+
defined(ARDUINO_AVR_ATmega3208) || defined(ARDUINO_AVR_ATmega1609) || defined(ARDUINO_AVR_ATmega1608) || \
19+
defined(ARDUINO_AVR_ATmega809) || defined(ARDUINO_AVR_ATmega808) )
20+
#error This is designed only for Arduino or MegaCoreX megaAVR board! Please check your Tools->Board setting
1821
#endif
1922

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

examples/Argument_None/Argument_None.ino

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,11 @@
1313
This important feature is absolutely necessary for mission-critical tasks.
1414
*****************************************************************************************************************************/
1515

16-
#if !( defined(__AVR_ATmega4809__) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) )
17-
#error This is designed only for Arduino megaAVR board! Please check your Tools->Board setting.
16+
#if !( defined(__AVR_ATmega4809__) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) || \
17+
defined(ARDUINO_AVR_ATmega4809) || defined(ARDUINO_AVR_ATmega4808) || defined(ARDUINO_AVR_ATmega3209) || \
18+
defined(ARDUINO_AVR_ATmega3208) || defined(ARDUINO_AVR_ATmega1609) || defined(ARDUINO_AVR_ATmega1608) || \
19+
defined(ARDUINO_AVR_ATmega809) || defined(ARDUINO_AVR_ATmega808) )
20+
#error This is designed only for Arduino or MegaCoreX megaAVR board! Please check your Tools->Board setting
1821
#endif
1922

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

examples/Argument_Simple/Argument_Simple.ino

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,11 @@
1313
This important feature is absolutely necessary for mission-critical tasks.
1414
*****************************************************************************************************************************/
1515

16-
#if !( defined(__AVR_ATmega4809__) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) )
17-
#error This is designed only for Arduino megaAVR board! Please check your Tools->Board setting.
16+
#if !( defined(__AVR_ATmega4809__) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) || \
17+
defined(ARDUINO_AVR_ATmega4809) || defined(ARDUINO_AVR_ATmega4808) || defined(ARDUINO_AVR_ATmega3209) || \
18+
defined(ARDUINO_AVR_ATmega3208) || defined(ARDUINO_AVR_ATmega1609) || defined(ARDUINO_AVR_ATmega1608) || \
19+
defined(ARDUINO_AVR_ATmega809) || defined(ARDUINO_AVR_ATmega808) )
20+
#error This is designed only for Arduino or MegaCoreX megaAVR board! Please check your Tools->Board setting
1821
#endif
1922

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

examples/Change_Interval/Change_Interval.ino

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,11 @@
2525
or the entire sequence of your code which accesses the data.
2626
*/
2727

28-
#if !( defined(__AVR_ATmega4809__) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) )
29-
#error This is designed only for Arduino megaAVR board! Please check your Tools->Board setting.
28+
#if !( defined(__AVR_ATmega4809__) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) || \
29+
defined(ARDUINO_AVR_ATmega4809) || defined(ARDUINO_AVR_ATmega4808) || defined(ARDUINO_AVR_ATmega3209) || \
30+
defined(ARDUINO_AVR_ATmega3208) || defined(ARDUINO_AVR_ATmega1609) || defined(ARDUINO_AVR_ATmega1608) || \
31+
defined(ARDUINO_AVR_ATmega809) || defined(ARDUINO_AVR_ATmega808) )
32+
#error This is designed only for Arduino or MegaCoreX megaAVR board! Please check your Tools->Board setting
3033
#endif
3134

3235
// These define's must be placed at the beginning before #include "megaAVR_TimerInterrupt.h"
@@ -45,7 +48,13 @@
4548

4649
#define USE_TIMER_0 false
4750
#define USE_TIMER_1 true
48-
#define USE_TIMER_2 true
51+
52+
#if ( defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) )
53+
#define USE_TIMER_2 true
54+
#else
55+
#define USE_TIMER_2 false
56+
#endif
57+
4958
#define USE_TIMER_3 false
5059

5160
// To be included only in main(), .ino with setup() to avoid `Multiple Definitions` Linker Error
@@ -124,7 +133,6 @@ void setup()
124133
Serial.println(F("250KHz for lower accuracy but longer time"));
125134
#endif
126135

127-
128136
// Select Timer 1-2 for UNO, 0-5 for MEGA
129137
// Timer 2 is 8-bit timer, only for higher frequency
130138
ITimer1.init();
@@ -140,7 +148,7 @@ void setup()
140148
else
141149
Serial.println(F("Can't set ITimer1. Select another freq. or timer"));
142150

143-
#if USE_TIMER_2
151+
#if ( defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) ) && USE_TIMER_2
144152

145153
// Select Timer 1-2 for UNO, 0-5 for MEGA
146154
// Timer 2 is 8-bit timer, only for higher frequency

examples/Change_Interval_HF/Change_Interval_HF.ino

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,11 @@
2525
or the entire sequence of your code which accesses the data.
2626
*/
2727

28-
#if !( defined(__AVR_ATmega4809__) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) )
29-
#error This is designed only for Arduino megaAVR board! Please check your Tools->Board setting.
28+
#if !( defined(__AVR_ATmega4809__) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) || \
29+
defined(ARDUINO_AVR_ATmega4809) || defined(ARDUINO_AVR_ATmega4808) || defined(ARDUINO_AVR_ATmega3209) || \
30+
defined(ARDUINO_AVR_ATmega3208) || defined(ARDUINO_AVR_ATmega1609) || defined(ARDUINO_AVR_ATmega1608) || \
31+
defined(ARDUINO_AVR_ATmega809) || defined(ARDUINO_AVR_ATmega808) )
32+
#error This is designed only for Arduino or MegaCoreX megaAVR board! Please check your Tools->Board setting
3033
#endif
3134

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

examples/FakeAnalogWrite/FakeAnalogWrite.ino

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@
2424
or the entire sequence of your code which accesses the data.
2525
*/
2626

27-
#if !( defined(__AVR_ATmega4809__) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) )
28-
#error This is designed only for Arduino megaAVR board! Please check your Tools->Board setting.
27+
#if !( defined(__AVR_ATmega4809__) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) || \
28+
defined(ARDUINO_AVR_ATmega4809) || defined(ARDUINO_AVR_ATmega4808) || defined(ARDUINO_AVR_ATmega3209) || \
29+
defined(ARDUINO_AVR_ATmega3208) || defined(ARDUINO_AVR_ATmega1609) || defined(ARDUINO_AVR_ATmega1608) || \
30+
defined(ARDUINO_AVR_ATmega809) || defined(ARDUINO_AVR_ATmega808) )
31+
#error This is designed only for Arduino or MegaCoreX megaAVR board! Please check your Tools->Board setting
2932
#endif
3033

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

0 commit comments

Comments
 (0)