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

Commit 5a8e114

Browse files
authored
v1.4.0
### Releases v1.4.0 1. Add support to **Adafruit AVR ATMEGA_32U4** such as **AVR_FLORA8, AVR_FEATHER32U4, etc.** 2. Add support to **Adafruit AVR ATMEGA_328(P)** such as **AVR_FEATHER328P, AVR_METRO, etc.** 3. Update examples
1 parent dc565b8 commit 5a8e114

35 files changed

+495
-725
lines changed

CONTRIBUTING.md

Lines changed: 2 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.13) or Platform.io version
18-
* `Arduino` Core Version (e.g. Arduino AVR core v1.8.3)
18+
* `Arduino AVR` or `Adafruit AVR` Core Version (e.g. Arduino AVR core v1.8.3 or Adafruit AVR Core v1.4.13)
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.13
3030
Arduino Core Version 1.8.3
3131
OS: Ubuntu 20.04 LTS
32-
Linux xy-Inspiron-3593 5.4.0-66-generic #74-Ubuntu SMP Wed Jan 27 22:54:38 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
32+
Linux xy-Inspiron-3593 5.4.0-70-generic #78-Ubuntu SMP Fri Mar 19 13:29:52 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
3333
3434
Context:
3535
I encountered a crash while trying to use the Timer Interrupt.

README.md

Lines changed: 50 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
* [Currently supported Boards](#currently-supported-boards)
1717
* [Important Notes about ISR](#important-notes-about-isr)
1818
* [Changelog](#changelog)
19+
* [Releases v1.4.0](#releases-v140)
1920
* [Releases v1.3.0](#releases-v130)
2021
* [Releases v1.2.0](#releases-v120)
2122
* [Releases v1.1.2](#releases-v112)
@@ -82,7 +83,7 @@
8283

8384
### Features
8485

85-
This library enables you to use Interrupt from Hardware Timers on an Arduino AVR board, such as Nano, UNO, Mega, etc.
86+
This library enables you to use Interrupt from Hardware Timers on an Arduino or Adafruit AVR board, such as Nano, UNO, Mega, AVR_FEATHER32U4, etc.
8687

8788
As **Hardware Timers are rare, and very precious assets** of any board, this library now enables you to use up to **16 ISR-based Timers, while consuming only 1 Hardware Timer**. Timers' interval is very long (**ulong millisecs**).
8889

@@ -126,18 +127,21 @@ The catch is your function is now part of an ISR (Interrupt Service Routine), an
126127
### Currently supported Boards
127128

128129
- Arduino Uno / Mega / Duemilanove / Diecimila / LilyPad / Mini / Fio / Nano, etc.
129-
- Sanguino
130-
- ATmega8, 48, 88, 168, 328
131-
- ATmega8535, 16, 32, 164, 324, 644, 1284,
132-
- ATmega64, 128
133-
- ATtiny 84 / 85
134-
- **ATMega 16U4, 32U4** such as AVR Leonardo, Leonardo ETH, YUN, Esplora, LILYPAD_USB, AVR_ROBOT_CONTROL, AVR_ROBOT_MOTOR, AVR_INDUSTRIAL101, etc.
130+
- **Arduino ATMega 16U4, 32U4** such as AVR Leonardo, Leonardo ETH, YUN, Esplora, LILYPAD_USB, AVR_ROBOT_CONTROL, AVR_ROBOT_MOTOR, AVR_INDUSTRIAL101, etc.
131+
- **Adafruit ATMega 32U4** such as AVR_FLORA8, AVR_FEATHER32U4, AVR_CIRCUITPLAY, AVR_ITSYBITSY32U4_5V, AVR_ITSYBITSY32U4_3V, AVR_BLUEFRUITMICRO, AVR_ADAFRUIT32U4, etc.
132+
- **Adafruit ATMega 328(P)** such as AVR_METRO, AVR_FEATHER328P, AVR_PROTRINKET5, AVR_PROTRINKET3, AVR_PROTRINKET5FTDI, AVR_PROTRINKET3FTDI, etc.
135133

136134
---
137135
---
138136

139137
## Changelog
140138

139+
### Releases v1.4.0
140+
141+
1. Add support to **Adafruit AVR ATMEGA_32U4** such as **AVR_FLORA8, AVR_FEATHER32U4, etc.**
142+
2. Add support to **Adafruit AVR ATMEGA_328(P)** such as **AVR_FEATHER328P, AVR_METRO, etc.**
143+
3. Update examples
144+
141145
### Releases v1.3.0
142146

143147
1. Add support to **AVR ATMEGA_16U4, ATMEGA_32U4** such as **Leonardo, YUN, ESPLORA, etc.**
@@ -177,6 +181,7 @@ The catch is your function is now part of an ISR (Interrupt Service Routine), an
177181

178182
1. [`Arduino IDE 1.8.13+` for Arduino](https://www.arduino.cc/en/Main/Software)
179183
2. [`Arduino AVR core 1.8.3+`](https://github.com/arduino/ArduinoCore-avr) for Arduino AVR boards. Use Arduino Board Manager to install. [![Latest release](https://img.shields.io/github/release/arduino/ArduinoCore-avr.svg)](https://github.com/arduino/ArduinoCore-avr/releases/latest/)
184+
3. [`Adafruit AVR core 1.4.13+`](https://github.com/adafruit/Adafruit_Arduino_Boards) for Adafruit AVR boards. Use Arduino Board Manager to install.
180185

181186
---
182187
---
@@ -279,15 +284,11 @@ Before using any Timer, you have to make sure the Timer has not been used by any
279284

280285
```
281286
// Select the timers you're using, here ITimer1
282-
#if ( TIMER_INTERRUPT_USING_ATMEGA_32U4 )
283-
#define USE_TIMER_1 true
284-
#else
285-
#define USE_TIMER_1 true
286-
#define USE_TIMER_2 false
287-
#define USE_TIMER_3 false
288-
#define USE_TIMER_4 false
289-
#define USE_TIMER_5 false
290-
#endif
287+
#define USE_TIMER_1 true
288+
#define USE_TIMER_2 false
289+
#define USE_TIMER_3 false
290+
#define USE_TIMER_4 false
291+
#define USE_TIMER_5 false
291292
292293
// Init timer ITimer1
293294
ITimer1.init();
@@ -383,15 +384,11 @@ The 16 ISR_based Timers, designed for long timer intervals, only support using *
383384
### 2.2 Init Hardware Timer and ISR-based Timer
384385

385386
```
386-
#if ( TIMER_INTERRUPT_USING_ATMEGA_32U4 )
387-
#define USE_TIMER_1 true
388-
#else
389-
#define USE_TIMER_1 true
390-
#define USE_TIMER_2 false
391-
#define USE_TIMER_3 false
392-
#define USE_TIMER_4 false
393-
#define USE_TIMER_5 false
394-
#endif
387+
#define USE_TIMER_1 true
388+
#define USE_TIMER_2 false
389+
#define USE_TIMER_3 false
390+
#define USE_TIMER_4 false
391+
#define USE_TIMER_5 false
395392
396393
// Init ISR_Timer
397394
// Each ISR_Timer can service 16 different ISR-based timers
@@ -485,41 +482,17 @@ void setup()
485482
### Example [ISR_16_Timers_Array_Complex](examples/ISR_16_Timers_Array_Complex)
486483

487484
```cpp
488-
#if ( defined(__AVR_ATmega8__) || defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || \
489-
defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644A__) || \
490-
defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__) || defined(ARDUINO_AVR_UNO) || defined(ARDUINO_AVR_NANO) || \
491-
defined(ARDUINO_AVR_MINI) || defined(ARDUINO_AVR_ETHERNET) || defined(ARDUINO_AVR_FIO) || defined(ARDUINO_AVR_BT) || \
492-
defined(ARDUINO_AVR_LILYPAD) || defined(ARDUINO_AVR_PRO) || defined(ARDUINO_AVR_NG) || defined(ARDUINO_AVR_UNO_WIFI_DEV_ED) )
493-
494-
#elif ( defined(ARDUINO_AVR_LEONARDO) || defined(ARDUINO_AVR_LEONARDO_ETH) || defined(ARDUINO_AVR_YUN) || defined(ARDUINO_AVR_MICRO) || \
495-
defined(ARDUINO_AVR_ESPLORA) || defined(ARDUINO_AVR_LILYPAD_USB) || defined(ARDUINO_AVR_ROBOT_CONTROL) || defined(ARDUINO_AVR_ROBOT_MOTOR) || \
496-
defined(ARDUINO_AVR_CIRCUITPLAY) || defined(ARDUINO_AVR_YUNMINI) || defined(ARDUINO_AVR_INDUSTRIAL101) || defined(ARDUINO_AVR_LININO_ONE) )
497-
#if defined(TIMER_INTERRUPT_USING_ATMEGA_32U4)
498-
#undef TIMER_INTERRUPT_USING_ATMEGA_32U4
499-
#endif
500-
#define TIMER_INTERRUPT_USING_ATMEGA_32U4 true
501-
#warning Using ATMega32U4, such as Leonardo or Leonardo ETH. Only Timer1 is available
502-
#elif defined(ARDUINO_AVR_GEMMA)
503-
#error These AVR boards are not supported! You can use Software Serial. Please check your Tools->Board setting.
504-
#else
505-
#error This is designed only for Arduino AVR board! Please check your Tools->Board setting.
506-
#endif
507-
508485
// These define's must be placed at the beginning before #include "TimerInterrupt.h"
509486
// _TIMERINTERRUPT_LOGLEVEL_ from 0 to 4
510487
// Don't define _TIMERINTERRUPT_LOGLEVEL_ > 0. Only for special ISR debugging only. Can hang the system.
511488
#define TIMER_INTERRUPT_DEBUG 0
512489
#define _TIMERINTERRUPT_LOGLEVEL_ 0
513490

514-
#if ( TIMER_INTERRUPT_USING_ATMEGA_32U4 )
515-
#define USE_TIMER_1 true
516-
#else
517-
#define USE_TIMER_1 true
518-
#define USE_TIMER_2 false
519-
#define USE_TIMER_3 false
520-
#define USE_TIMER_4 false
521-
#define USE_TIMER_5 false
522-
#endif
491+
#define USE_TIMER_1 true
492+
#define USE_TIMER_2 false
493+
#define USE_TIMER_3 false
494+
#define USE_TIMER_4 false
495+
#define USE_TIMER_5 false
523496

524497
#include "TimerInterrupt.h"
525498
#include "ISR_Timer.h"
@@ -840,7 +813,7 @@ While software timer, **programmed for 2s, is activated after more than 10.000s
840813
841814
```
842815
Starting ISR_16_Timers_Array_Complex on AVR
843-
TimerInterrupt v1.3.0
816+
TimerInterrupt v1.4.0
844817
CPU Frequency = 16 MHz
845818
Starting ITimer2 OK, millis() = 1
846819
SimpleTimer : 2, ms : 10007, Dms : 10007
@@ -990,7 +963,7 @@ The following is the sample terminal output when running example [Change_Interva
990963
991964
```
992965
Starting Change_Interval on AVR
993-
TimerInterrupt v1.3.0
966+
TimerInterrupt v1.4.0
994967
CPU Frequency = 16 MHz
995968
Starting ITimer1 OK, millis() = 1
996969
Starting ITimer2 OK, millis() = 4
@@ -1020,8 +993,10 @@ You can also change the debugging level from 0 to 3
1020993
1021994
```cpp
1022995
// These define's must be placed at the beginning before #include "TimerInterrupt.h"
1023-
// Don't define TIMER_INTERRUPT_DEBUG > 0. Only for special ISR debugging only. Can hang the system.
1024-
#define TIMER_INTERRUPT_DEBUG 0
996+
// _TIMERINTERRUPT_LOGLEVEL_ from 0 to 4
997+
// Don't define _TIMERINTERRUPT_LOGLEVEL_ > 0. Only for special ISR debugging only. Can hang the system.
998+
#define TIMER_INTERRUPT_DEBUG 0
999+
#define _TIMERINTERRUPT_LOGLEVEL_ 0
10251000
```
10261001

10271002
---
@@ -1038,6 +1013,12 @@ Sometimes, the library will only work if you update the board core to the latest
10381013

10391014
## Releases
10401015

1016+
### Releases v1.4.0
1017+
1018+
1. Add support to **Adafruit AVR ATMEGA_32U4** such as **AVR_FLORA8, AVR_FEATHER32U4, etc.**
1019+
2. Add support to **Adafruit AVR ATMEGA_328(P)** such as **AVR_FEATHER328P, AVR_METRO, etc.**
1020+
3. Update examples
1021+
10411022
### Releases v1.3.0
10421023

10431024
1. Add support to **AVR ATMEGA_16U4, ATMEGA_32U4** such as **Leonardo, YUN, ESPLORA, etc.**
@@ -1080,14 +1061,12 @@ in loop(), using delay() function as an example. The elapsed time then is very u
10801061

10811062
---
10821063

1083-
### Supported Arduino Boards
1064+
### Currently supported Boards
10841065

1085-
- Arduino Uno / Mega / Leonardo / Duemilanove / Diecimila / LilyPad / Mini / Fio / Nano etc.
1086-
- Sanguino
1087-
- ATmega8, 48, 88, 168, 328
1088-
- ATmega8535, 16, 32, 164, 324, 644, 1284,
1089-
- ATmega64, 128
1090-
- ATtiny 84 / 85
1066+
- Arduino Uno / Mega / Duemilanove / Diecimila / LilyPad / Mini / Fio / Nano, etc.
1067+
- **Arduino ATMega 16U4, 32U4** such as AVR Leonardo, Leonardo ETH, YUN, Esplora, LILYPAD_USB, AVR_ROBOT_CONTROL, AVR_ROBOT_MOTOR, AVR_INDUSTRIAL101, etc.
1068+
- **Adafruit ATMega 32U4** such as AVR_FLORA8, AVR_FEATHER32U4, AVR_CIRCUITPLAY, AVR_ITSYBITSY32U4_5V, AVR_ITSYBITSY32U4_3V, AVR_BLUEFRUITMICRO, AVR_ADAFRUIT32U4, etc.
1069+
- **Adafruit ATMega 328(P)** such as AVR_METRO, AVR_FEATHER328P, AVR_PROTRINKET5, AVR_PROTRINKET3, AVR_PROTRINKET5FTDI, AVR_PROTRINKET3FTDI, etc.
10911070

10921071
---
10931072
---
@@ -1113,8 +1092,9 @@ Submit issues to: [TimerInterrupt issues](https://github.com/khoih-prog/TimerInt
11131092
4. Fix some bugs in v1.0.0
11141093
5. Add more examples.
11151094
6. Similar library for ESP32, ESP8266, SAMD21/SAMD51, nRF52, Mbed-OS Nano-33-BLE, STM32
1116-
7. Add support to **ATMega-16U4, ATMega-32U4**-based boards
1117-
1095+
7. Add support to **Arduino ATMega-16U4, ATMega-32U4**-based boards
1096+
8. Add support to **Adafruit ATMega-32U4**-based boards
1097+
9. Add support to **Adafruit ATMega-328(P)**-based boards
11181098

11191099
---
11201100
---
@@ -1124,13 +1104,15 @@ Submit issues to: [TimerInterrupt issues](https://github.com/khoih-prog/TimerInt
11241104
Many thanks for everyone for bug reporting, new feature suggesting, testing and contributing to the development of this library. Especially to these people who have directly or indirectly contributed to this [TimerInterrupt library](https://github.com/khoih-prog/TimerInterrupt)
11251105

11261106
1. Thanks to [Django0](https://github.com/Django0) to provide the following PR [Fixed warnings from cppcheck (platformio) and -Wall arduino-cli. PR#10](https://github.com/khoih-prog/TimerInterrupt/pull/10).
1127-
2. Thanks to [eslavko](https://github.com/eslavko) to report the issue [Error compiling for arduino leonardo #13](https://github.com/khoih-prog/TimerInterrupt/issues/13) leading to new release v1.3.0 to provide support to **ATMega-16U4, ATMega-32U4**-based boards, such as AVR Leonardo, Leonardo ETH, YUN, Esplora, LILYPAD_USB, AVR_ROBOT_CONTROL, AVR_ROBOT_MOTOR, AVR_INDUSTRIAL101, etc..
1107+
2. Thanks to [eslavko](https://github.com/eslavko) to report the issue [Error compiling for arduino leonardo #13](https://github.com/khoih-prog/TimerInterrupt/issues/13) leading to new release v1.3.0 to provide support to **Arduino ATMega-16U4, ATMega-32U4**-based boards, such as AVR Leonardo, Leonardo ETH, YUN, Esplora, LILYPAD_USB, AVR_ROBOT_CONTROL, AVR_ROBOT_MOTOR, AVR_INDUSTRIAL101, etc..
1108+
3. Thanks to [bzuidgeest](https://github.com/bzuidgeest) to report the issue [Adafruit feather 32u4 #17](https://github.com/khoih-prog/TimerInterrupt/issues/17) leading to new release v1.4.0 to provide support to Adafruit **ATMega-32U4**-based boards, such as AVR_FLORA8, AVR_FEATHER32U4, AVR_CIRCUITPLAY, AVR_ITSYBITSY32U4_5V, AVR_ITSYBITSY32U4_3V, AVR_BLUEFRUITMICRO, AVR_ADAFRUIT32U4, etc. and Adafrui ATMega-328(P)-based boards, such as AVR_METRO, AVR_FEATHER328P, AVR_PROTRINKET5, AVR_PROTRINKET3, AVR_PROTRINKET5FTDI, AVR_PROTRINKET3FTDI, etc.
11281109

11291110

11301111
<table>
11311112
<tr>
11321113
<td align="center"><a href="https://github.com/Django0"><img src="https://github.com/Django0.png" width="100px;" alt="Django0"/><br /><sub><b>Django0</b></sub></a><br /></td>
11331114
<td align="center"><a href="https://github.com/eslavko"><img src="https://github.com/eslavko.png" width="100px;" alt="eslavko"/><br /><sub><b>eslavko</b></sub></a><br /></td>
1115+
<td align="center"><a href="https://github.com/bzuidgeest"><img src="https://github.com/bzuidgeest.png" width="100px;" alt="bzuidgeest"/><br /><sub><b>bzuidgeest</b></sub></a><br /></td>
11341116
</tr>
11351117
</table>
11361118

examples/Argument_Complex/Argument_Complex.ino

Lines changed: 17 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
/****************************************************************************************************************************
22
Argument_Complex.ino
3-
For Arduino boards (UNO, Nano, Mega, etc. )
3+
For Arduino and Adadruit AVR 328(P) and 32u4 boards
44
Written by Khoi Hoang
5-
5+
66
Built by Khoi Hoang https://github.com/khoih-prog/TimerInterrupt
77
Licensed under MIT license
8-
8+
99
Now we can use these new 16 ISR-based timers, while consuming only 1 hardware Timer.
1010
Their independently-selected, maximum interval is practically unlimited (limited only by unsigned long miliseconds)
1111
The accuracy is nearly perfect compared to software timers. The most important feature is they're ISR-based timers
1212
Therefore, their executions are not blocked by bad-behaving functions / tasks.
1313
This important feature is absolutely necessary for mission-critical tasks.
14-
14+
1515
Notes:
1616
Special design is necessary to share data between interrupt code and the rest of your program.
1717
Variables usually need to be "volatile" types. Volatile tells the compiler to avoid optimizations that assume
@@ -21,8 +21,8 @@
2121
if the interrupt changes a multi-byte variable between a sequence of instructions, it can be read incorrectly.
2222
If your data is multiple variables, such as an array and a count, usually interrupts need to be disabled
2323
or the entire sequence of your code which accesses the data.
24-
25-
Version: 1.3.0
24+
25+
Version: 1.4.0
2626
2727
Version Modified By Date Comments
2828
------- ----------- ---------- -----------
@@ -33,47 +33,28 @@
3333
1.1.1 K.Hoang 06/12/2020 Add example Change_Interval. Bump up version to sync with other TimerInterrupt Libraries
3434
1.1.2 K.Hoang 05/01/2021 Fix warnings. Optimize examples to reduce memory usage
3535
1.2.0 K.Hoang 07/01/2021 Add better debug feature. Optimize code and examples to reduce RAM usage
36-
1.3.0 K.Hoang 25/02/2021 Add support to AVR Leonardo and Leonardo ETH
36+
1.3.0 K.Hoang 25/02/2021 Add support to AVR ATMEGA_32U4 such as Leonardo, YUN, ESPLORA, etc.
37+
1.4.0 K.Hoang 01/04/2021 Add support to Adafruit 32U4 and 328(P) such as FEATHER32U4, FEATHER328P, etc.
3738
*****************************************************************************************************************************/
3839

39-
#if ( defined(__AVR_ATmega8__) || defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || \
40-
defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644A__) || \
41-
defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__) || defined(ARDUINO_AVR_UNO) || defined(ARDUINO_AVR_NANO) || \
42-
defined(ARDUINO_AVR_MINI) || defined(ARDUINO_AVR_ETHERNET) || defined(ARDUINO_AVR_FIO) || defined(ARDUINO_AVR_BT) || \
43-
defined(ARDUINO_AVR_LILYPAD) || defined(ARDUINO_AVR_PRO) || defined(ARDUINO_AVR_NG) || defined(ARDUINO_AVR_UNO_WIFI_DEV_ED) )
44-
45-
#elif ( defined(ARDUINO_AVR_LEONARDO) || defined(ARDUINO_AVR_LEONARDO_ETH) || defined(ARDUINO_AVR_YUN) || defined(ARDUINO_AVR_MICRO) || \
46-
defined(ARDUINO_AVR_ESPLORA) || defined(ARDUINO_AVR_LILYPAD_USB) || defined(ARDUINO_AVR_ROBOT_CONTROL) || defined(ARDUINO_AVR_ROBOT_MOTOR) || \
47-
defined(ARDUINO_AVR_CIRCUITPLAY) || defined(ARDUINO_AVR_YUNMINI) || defined(ARDUINO_AVR_INDUSTRIAL101) || defined(ARDUINO_AVR_LININO_ONE) )
48-
#if defined(TIMER_INTERRUPT_USING_ATMEGA_32U4)
49-
#undef TIMER_INTERRUPT_USING_ATMEGA_32U4
50-
#endif
51-
#define TIMER_INTERRUPT_USING_ATMEGA_32U4 true
52-
#warning Using ATMega32U4, such as Leonardo or Leonardo ETH. Only Timer1 is available
53-
#elif defined(ARDUINO_AVR_GEMMA)
54-
#error These AVR boards are not supported! You can use Software Serial. Please check your Tools->Board setting.
55-
#else
56-
#error This is designed only for Arduino AVR board! Please check your Tools->Board setting.
57-
#endif
58-
5940
// These define's must be placed at the beginning before #include "TimerInterrupt.h"
6041
// _TIMERINTERRUPT_LOGLEVEL_ from 0 to 4
6142
// Don't define _TIMERINTERRUPT_LOGLEVEL_ > 0. Only for special ISR debugging only. Can hang the system.
6243
#define TIMER_INTERRUPT_DEBUG 0
6344
#define _TIMERINTERRUPT_LOGLEVEL_ 0
6445

65-
#if ( TIMER_INTERRUPT_USING_ATMEGA_32U4 )
66-
#define USE_TIMER_1 true
67-
#else
68-
#define USE_TIMER_1 true
69-
#define USE_TIMER_2 false
70-
#define USE_TIMER_3 false
71-
#define USE_TIMER_4 false
72-
#define USE_TIMER_5 false
73-
#endif
46+
#define USE_TIMER_1 true
47+
#define USE_TIMER_2 false
48+
#define USE_TIMER_3 false
49+
#define USE_TIMER_4 false
50+
#define USE_TIMER_5 false
7451

7552
#include "TimerInterrupt.h"
7653

54+
#if !defined(LED_BUILTIN)
55+
#define LED_BUILTIN 13
56+
#endif
57+
7758
struct pinStruct
7859
{
7960
unsigned int Pin1;

0 commit comments

Comments
 (0)