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

Commit ba1a2f5

Browse files
authored
v1.1.0
### Release v1.1.0 1. Fix bug. Don't use v1.0.0
1 parent ca88269 commit ba1a2f5

22 files changed

+1551
-131
lines changed

README.md

Lines changed: 94 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
* [Important Notes about ISR](#important-notes-about-isr)
1515
* [Currently supported Boards](#currently-supported-boards)
1616
* [Changelog](#changelog)
17+
* [Release v1.1.0](#release-v110)
1718
* [Initial Release v1.0.0](#initial-release-v100)
1819
* [Prerequisites](#prerequisites)
1920
* [Installation](#installation)
@@ -123,6 +124,10 @@ The catch is your function is now part of an ISR (Interrupt Service Routine), an
123124

124125
## Changelog
125126

127+
### Release v1.1.0
128+
129+
1. Fix bug. Don't use v1.0.0
130+
126131
### Initial Release v1.0.0
127132

128133
1. Intial release to support to ATmega4809-based boards, such as **Arduino UNO WiFi Rev2, AVR_NANO_EVERY, etc.**
@@ -733,20 +738,21 @@ void loop()
733738
734739
### Debug Terminal Output Samples
735740
736-
### 1. ISR_16_Timers_Array_Complex on Arduino megaAVR UNO WiFi Rev2
741+
### 1. ISR_16_Timers_Array_Complex on Arduino megaAVR Nano Every
737742
738-
The following is the sample terminal output when running example [ISR_16_Timers_Array_Complex](examples/ISR_16_Timers_Array_Complex) on **Arduino megaAVR UNO WiFi Rev2** 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 !!!**
743+
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** 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 !!!**
739744
740745
While software timer, **programmed for 2s, is activated after more than 10.000s in loop().
741746
742747
```
748+
743749
Starting ISR_16_Timers_Array_Complex on megaAVR
744-
megaAVR_TimerInterrupt v1.0.0
750+
megaAVR_TimerInterrupt v1.1.0
745751
CPU Frequency = 16 MHz
746-
Starting ITimer2 OK, millis() = 1
747-
SimpleTimer : 2, ms : 10007, Dms : 10007
748-
Timer : 0, programmed : 5000, actual : 4997
749-
Timer : 1, programmed : 10000, actual : 10005
752+
Starting ITimer1 OK, millis() = 6
753+
SimpleTimer : 2, ms : 10006, Dms : 10006
754+
Timer : 0, programmed : 5000, actual : 5006
755+
Timer : 1, programmed : 10000, actual : 10010
750756
Timer : 2, programmed : 15000, actual : 0
751757
Timer : 3, programmed : 20000, actual : 0
752758
Timer : 4, programmed : 25000, actual : 0
@@ -761,11 +767,11 @@ Timer : 12, programmed : 65000, actual : 0
761767
Timer : 13, programmed : 70000, actual : 0
762768
Timer : 14, programmed : 75000, actual : 0
763769
Timer : 15, programmed : 80000, actual : 0
764-
SimpleTimer : 2, ms : 20071, Dms : 10064
765-
Timer : 0, programmed : 5000, actual : 5002
766-
Timer : 1, programmed : 10000, actual : 10004
767-
Timer : 2, programmed : 15000, actual : 15007
768-
Timer : 3, programmed : 20000, actual : 20009
770+
SimpleTimer : 2, ms : 20065, Dms : 10059
771+
Timer : 0, programmed : 5000, actual : 4994
772+
Timer : 1, programmed : 10000, actual : 9998
773+
Timer : 2, programmed : 15000, actual : 15014
774+
Timer : 3, programmed : 20000, actual : 20008
769775
Timer : 4, programmed : 25000, actual : 0
770776
Timer : 5, programmed : 30000, actual : 0
771777
Timer : 6, programmed : 35000, actual : 0
@@ -778,13 +784,13 @@ Timer : 12, programmed : 65000, actual : 0
778784
Timer : 13, programmed : 70000, actual : 0
779785
Timer : 14, programmed : 75000, actual : 0
780786
Timer : 15, programmed : 80000, actual : 0
781-
SimpleTimer : 2, ms : 30136, Dms : 10065
782-
Timer : 0, programmed : 5000, actual : 5001
783-
Timer : 1, programmed : 10000, actual : 9999
784-
Timer : 2, programmed : 15000, actual : 15001
785-
Timer : 3, programmed : 20000, actual : 20009
786-
Timer : 4, programmed : 25000, actual : 25007
787-
Timer : 5, programmed : 30000, actual : 30008
787+
SimpleTimer : 2, ms : 30125, Dms : 10060
788+
Timer : 0, programmed : 5000, actual : 4994
789+
Timer : 1, programmed : 10000, actual : 9998
790+
Timer : 2, programmed : 15000, actual : 14992
791+
Timer : 3, programmed : 20000, actual : 20008
792+
Timer : 4, programmed : 25000, actual : 25012
793+
Timer : 5, programmed : 30000, actual : 30006
788794
Timer : 6, programmed : 35000, actual : 0
789795
Timer : 7, programmed : 40000, actual : 0
790796
Timer : 8, programmed : 45000, actual : 0
@@ -795,15 +801,15 @@ Timer : 12, programmed : 65000, actual : 0
795801
Timer : 13, programmed : 70000, actual : 0
796802
Timer : 14, programmed : 75000, actual : 0
797803
Timer : 15, programmed : 80000, actual : 0
798-
SimpleTimer : 2, ms : 40202, Dms : 10066
799-
Timer : 0, programmed : 5000, actual : 5002
800-
Timer : 1, programmed : 10000, actual : 9999
801-
Timer : 2, programmed : 15000, actual : 15001
802-
Timer : 3, programmed : 20000, actual : 19998
803-
Timer : 4, programmed : 25000, actual : 25007
804-
Timer : 5, programmed : 30000, actual : 30008
805-
Timer : 6, programmed : 35000, actual : 35011
806-
Timer : 7, programmed : 40000, actual : 40007
804+
SimpleTimer : 2, ms : 40184, Dms : 10059
805+
Timer : 0, programmed : 5000, actual : 5004
806+
Timer : 1, programmed : 10000, actual : 10008
807+
Timer : 2, programmed : 15000, actual : 14992
808+
Timer : 3, programmed : 20000, actual : 20006
809+
Timer : 4, programmed : 25000, actual : 25012
810+
Timer : 5, programmed : 30000, actual : 30006
811+
Timer : 6, programmed : 35000, actual : 35010
812+
Timer : 7, programmed : 40000, actual : 40014
807813
Timer : 8, programmed : 45000, actual : 0
808814
Timer : 9, programmed : 50000, actual : 0
809815
Timer : 10, programmed : 55000, actual : 0
@@ -812,86 +818,87 @@ Timer : 12, programmed : 65000, actual : 0
812818
Timer : 13, programmed : 70000, actual : 0
813819
Timer : 14, programmed : 75000, actual : 0
814820
Timer : 15, programmed : 80000, actual : 0
815-
SimpleTimer : 2, ms : 50270, Dms : 10068
816-
Timer : 0, programmed : 5000, actual : 4998
817-
Timer : 1, programmed : 10000, actual : 10000
818-
Timer : 2, programmed : 15000, actual : 15001
819-
Timer : 3, programmed : 20000, actual : 19998
821+
SimpleTimer : 2, ms : 50245, Dms : 10061
822+
Timer : 0, programmed : 5000, actual : 5004
823+
Timer : 1, programmed : 10000, actual : 9998
824+
Timer : 2, programmed : 15000, actual : 15002
825+
Timer : 3, programmed : 20000, actual : 20006
820826
Timer : 4, programmed : 25000, actual : 25000
821-
Timer : 5, programmed : 30000, actual : 30008
822-
Timer : 6, programmed : 35000, actual : 35011
823-
Timer : 7, programmed : 40000, actual : 40007
824-
Timer : 8, programmed : 45000, actual : 45009
825-
Timer : 9, programmed : 50000, actual : 50007
827+
Timer : 5, programmed : 30000, actual : 30006
828+
Timer : 6, programmed : 35000, actual : 35010
829+
Timer : 7, programmed : 40000, actual : 40014
830+
Timer : 8, programmed : 45000, actual : 45008
831+
Timer : 9, programmed : 50000, actual : 50012
826832
Timer : 10, programmed : 55000, actual : 0
827833
Timer : 11, programmed : 60000, actual : 0
828834
Timer : 12, programmed : 65000, actual : 0
829835
Timer : 13, programmed : 70000, actual : 0
830836
Timer : 14, programmed : 75000, actual : 0
831837
Timer : 15, programmed : 80000, actual : 0
832-
SimpleTimer : 2, ms : 60338, Dms : 10068
833-
Timer : 0, programmed : 5000, actual : 4997
834-
Timer : 1, programmed : 10000, actual : 9999
835-
Timer : 2, programmed : 15000, actual : 14997
836-
Timer : 3, programmed : 20000, actual : 19999
838+
SimpleTimer : 2, ms : 60307, Dms : 10062
839+
Timer : 0, programmed : 5000, actual : 5004
840+
Timer : 1, programmed : 10000, actual : 9998
841+
Timer : 2, programmed : 15000, actual : 15002
842+
Timer : 3, programmed : 20000, actual : 19996
837843
Timer : 4, programmed : 25000, actual : 25000
838-
Timer : 5, programmed : 30000, actual : 29998
839-
Timer : 6, programmed : 35000, actual : 35011
840-
Timer : 7, programmed : 40000, actual : 40007
841-
Timer : 8, programmed : 45000, actual : 45009
842-
Timer : 9, programmed : 50000, actual : 50007
843-
Timer : 10, programmed : 55000, actual : 55009
844-
Timer : 11, programmed : 60000, actual : 60006
844+
Timer : 5, programmed : 30000, actual : 30004
845+
Timer : 6, programmed : 35000, actual : 35010
846+
Timer : 7, programmed : 40000, actual : 40014
847+
Timer : 8, programmed : 45000, actual : 45008
848+
Timer : 9, programmed : 50000, actual : 50012
849+
Timer : 10, programmed : 55000, actual : 55006
850+
Timer : 11, programmed : 60000, actual : 60010
845851
Timer : 12, programmed : 65000, actual : 0
846852
Timer : 13, programmed : 70000, actual : 0
847853
Timer : 14, programmed : 75000, actual : 0
848854
Timer : 15, programmed : 80000, actual : 0
849-
SimpleTimer : 2, ms : 70408, Dms : 10070
850-
Timer : 0, programmed : 5000, actual : 4997
851-
Timer : 1, programmed : 10000, actual : 9999
852-
Timer : 2, programmed : 15000, actual : 14997
853-
Timer : 3, programmed : 20000, actual : 19999
855+
SimpleTimer : 2, ms : 70369, Dms : 10062
856+
Timer : 0, programmed : 5000, actual : 4994
857+
Timer : 1, programmed : 10000, actual : 9998
858+
Timer : 2, programmed : 15000, actual : 15002
859+
Timer : 3, programmed : 20000, actual : 19996
854860
Timer : 4, programmed : 25000, actual : 25000
855-
Timer : 5, programmed : 30000, actual : 29998
856-
Timer : 6, programmed : 35000, actual : 34999
857-
Timer : 7, programmed : 40000, actual : 40007
858-
Timer : 8, programmed : 45000, actual : 45009
859-
Timer : 9, programmed : 50000, actual : 50007
860-
Timer : 10, programmed : 55000, actual : 55009
861-
Timer : 11, programmed : 60000, actual : 60006
862-
Timer : 12, programmed : 65000, actual : 65008
863-
Timer : 13, programmed : 70000, actual : 70010
861+
Timer : 5, programmed : 30000, actual : 30004
862+
Timer : 6, programmed : 35000, actual : 34998
863+
Timer : 7, programmed : 40000, actual : 40014
864+
Timer : 8, programmed : 45000, actual : 45008
865+
Timer : 9, programmed : 50000, actual : 50012
866+
Timer : 10, programmed : 55000, actual : 55006
867+
Timer : 11, programmed : 60000, actual : 60010
868+
Timer : 12, programmed : 65000, actual : 65014
869+
Timer : 13, programmed : 70000, actual : 70008
864870
Timer : 14, programmed : 75000, actual : 0
865871
Timer : 15, programmed : 80000, actual : 0
866-
SimpleTimer : 2, ms : 80479, Dms : 10071
867-
Timer : 0, programmed : 5000, actual : 4997
868-
Timer : 1, programmed : 10000, actual : 10000
872+
SimpleTimer : 2, ms : 80432, Dms : 10063
873+
Timer : 0, programmed : 5000, actual : 4994
874+
Timer : 1, programmed : 10000, actual : 9998
869875
Timer : 2, programmed : 15000, actual : 15002
870-
Timer : 3, programmed : 20000, actual : 19999
871-
Timer : 4, programmed : 25000, actual : 25001
872-
Timer : 5, programmed : 30000, actual : 29998
873-
Timer : 6, programmed : 35000, actual : 34999
874-
Timer : 7, programmed : 40000, actual : 40003
875-
Timer : 8, programmed : 45000, actual : 45009
876-
Timer : 9, programmed : 50000, actual : 50007
877-
Timer : 10, programmed : 55000, actual : 55009
878-
Timer : 11, programmed : 60000, actual : 60006
879-
Timer : 12, programmed : 65000, actual : 65008
880-
Timer : 13, programmed : 70000, actual : 70010
881-
Timer : 14, programmed : 75000, actual : 75008
882-
Timer : 15, programmed : 80000, actual : 80010
876+
Timer : 3, programmed : 20000, actual : 19996
877+
Timer : 4, programmed : 25000, actual : 25000
878+
Timer : 5, programmed : 30000, actual : 30004
879+
Timer : 6, programmed : 35000, actual : 34998
880+
Timer : 7, programmed : 40000, actual : 39992
881+
Timer : 8, programmed : 45000, actual : 45008
882+
Timer : 9, programmed : 50000, actual : 50012
883+
Timer : 10, programmed : 55000, actual : 55006
884+
Timer : 11, programmed : 60000, actual : 60010
885+
Timer : 12, programmed : 65000, actual : 65014
886+
Timer : 13, programmed : 70000, actual : 70008
887+
Timer : 14, programmed : 75000, actual : 75012
888+
Timer : 15, programmed : 80000, actual : 80016
889+
883890

884891
```
885892
886893
---
887894
888-
### 2. Change_Interval on Arduino megaAVR UNO WiFi Rev2
895+
### 2. Change_Interval on Arduino megaAVR Nano Every
889896
890-
The following is the sample terminal output when running example [Change_Interval](examples/Change_Interval) on **Arduino megaAVR UNO WiFi Rev2** to demonstrate how to change Timer Interval on-the-fly
897+
The following is the sample terminal output when running example [Change_Interval](examples/Change_Interval) on **Arduino megaAVR Nano Every** to demonstrate how to change Timer Interval on-the-fly
891898
892899
```
893900
Starting Change_Interval on megaAVR
894-
megaAVR_TimerInterrupt v1.0.0
901+
megaAVR_TimerInterrupt v1.1.0
895902
CPU Frequency = 16 MHz
896903
Starting ITimer1 OK, millis() = 1
897904
Starting ITimer2 OK, millis() = 4
@@ -941,6 +948,10 @@ Sometimes, the library will only work if you update the board core to the latest
941948

942949
## Releases
943950

951+
### Release v1.1.0
952+
953+
1. Fix bug. Don't use v1.0.0
954+
944955
### Initial Release v1.0.0
945956

946957
1. Intial release to support to ATmega4809-based boards, such as **Arduino UNO WiFi Rev2, AVR_NANO_EVERY, etc.**

examples/Argument_Complex/Argument_Complex.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ void TimerHandler1(unsigned int outputPinsAddress)
7878
toggle1 = !toggle1;
7979
}
8080

81-
#define TIMER1_INTERVAL_MS 1000
81+
#define TIMER1_INTERVAL_MS 5000
8282

8383
void setup()
8484
{

examples/Change_Interval/Change_Interval.ino

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@
5353
#endif
5454

5555

56-
#define TIMER1_INTERVAL_MS 100UL
57-
#define TIMER2_INTERVAL_MS 200UL
56+
#define TIMER1_INTERVAL_MS 1000UL
57+
#define TIMER2_INTERVAL_MS 2000UL
5858

5959
volatile uint32_t Timer1Count = 0;
6060
volatile uint32_t Timer2Count = 0;

examples/TimerDuration/TimerDuration.ino

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
// These define's must be placed at the beginning before #include "megaAVR_TimerInterrupt.h"
2323
// _TIMERINTERRUPT_LOGLEVEL_ from 0 to 4
2424
// Don't define _TIMERINTERRUPT_LOGLEVEL_ > 0. Only for special ISR debugging only. Can hang the system.
25-
#define TIMER_INTERRUPT_DEBUG 0
26-
#define _TIMERINTERRUPT_LOGLEVEL_ 0
25+
#define TIMER_INTERRUPT_DEBUG 4
26+
#define _TIMERINTERRUPT_LOGLEVEL_ 4
2727

2828
#define USE_TIMER_0 false
2929
#define USE_TIMER_1 true
@@ -69,7 +69,7 @@ void TimerHandler2(unsigned int outputPin = LED_BUILTIN)
6969
pinMode(outputPin, OUTPUT);
7070
}
7171

72-
#if !(TIMER_INTERRUPT_DEBUG > 1)
72+
#if (TIMER_INTERRUPT_DEBUG > 1)
7373
Serial.print("ITimer2 called, millis() = "); Serial.println(millis());
7474
#endif
7575

examples/TimerInterruptTest/TimerInterruptTest.ino

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
// These define's must be placed at the beginning before #include "megaAVR_TimerInterrupt.h"
2323
// _TIMERINTERRUPT_LOGLEVEL_ from 0 to 4
2424
// Don't define _TIMERINTERRUPT_LOGLEVEL_ > 0. Only for special ISR debugging only. Can hang the system.
25-
#define TIMER_INTERRUPT_DEBUG 0
26-
#define _TIMERINTERRUPT_LOGLEVEL_ 0
25+
#define TIMER_INTERRUPT_DEBUG 2
26+
#define _TIMERINTERRUPT_LOGLEVEL_ 4
2727

2828
#define USE_TIMER_0 false
2929
#define USE_TIMER_1 true
@@ -85,10 +85,13 @@ unsigned int outputPin2 = A0;
8585
#define TIMER1_FREQUENCY (float) (1000.0f / TIMER1_INTERVAL_MS)
8686
#define TIMER1_DURATION_MS 0 //(10 * TIMER1_INTERVAL_MS)
8787

88-
#define TIMER2_INTERVAL_MS 13000
88+
#define TIMER2_INTERVAL_MS 150000
8989
#define TIMER2_FREQUENCY (float) (1000.0f / TIMER2_INTERVAL_MS)
9090
#define TIMER2_DURATION_MS 0 //(20 * TIMER2_INTERVAL_MS)
9191

92+
93+
#define ADJUST_FACTOR ( (float) 0.99850 )
94+
9295
void setup()
9396
{
9497
Serial.begin(115200);
@@ -97,7 +100,9 @@ void setup()
97100
Serial.println(F("\nStarting TimerInterruptTest on megaAVR"));
98101
Serial.println(MEGA_AVR_TIMER_INTERRUPT_VERSION);
99102
Serial.print(F("CPU Frequency = ")); Serial.print(F_CPU / 1000000); Serial.println(F(" MHz"));
100-
103+
104+
Serial.print(F("CPU ADJUST_FACTOR = ")); Serial.println(ADJUST_FACTOR);
105+
101106
// Timer0 is used for micros(), millis(), delay(), etc and can't be used
102107
// Select Timer 1-2 for UNO, 0-5 for MEGA
103108
// Timer 2 is 8-bit timer, only for higher frequency
@@ -106,7 +111,7 @@ void setup()
106111

107112
// Using ATmega328 used in UNO => 16MHz CPU clock ,
108113

109-
if (ITimer1.attachInterruptInterval(TIMER1_INTERVAL_MS, TimerHandler1, outputPin1, TIMER1_DURATION_MS))
114+
if (ITimer1.attachInterruptInterval(TIMER1_INTERVAL_MS * ADJUST_FACTOR, TimerHandler1, outputPin1, TIMER1_DURATION_MS))
110115
{
111116
Serial.print(F("Starting ITimer1 OK, millis() = ")); Serial.println(millis());
112117
}
@@ -117,7 +122,7 @@ void setup()
117122

118123
ITimer2.init();
119124

120-
if (ITimer2.attachInterruptInterval(TIMER2_INTERVAL_MS, TimerHandler2, outputPin2, TIMER2_DURATION_MS))
125+
if (ITimer2.attachInterruptInterval(TIMER2_INTERVAL_MS * ADJUST_FACTOR, TimerHandler2, outputPin2, TIMER2_DURATION_MS))
121126
{
122127
Serial.print(F("Starting ITimer2 OK, millis() = ")); Serial.println(millis());
123128
}

library.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "megaAVR_TimerInterrupt",
3-
"version": "1.0.0",
3+
"version": "1.1.0",
44
"keywords": "timer, interrupt, hardware, isr, isr-based, hardware-timer, mission-critical, accuracy, precise, megaave, nano, uno, atmega4809",
55
"description": "This library enables you to use Interrupt from Hardware Timers on an Arduino megaAVR board, such as UNO WiFi Rev2, AVR_NANO_EVERY, etc. It now supports 16 ISR-based timers, while consuming only 1 hardware Timer. Timers' interval is very long (ulong millisecs). The most important feature is they're ISR-based timers. Therefore, their executions are not blocked by bad-behaving functions or tasks. This important feature is absolutely necessary for mission-critical tasks.",
66
"authors":

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=megaAVR_TimerInterrupt
2-
version=1.0.0
2+
version=1.1.0
33
author=Khoi Hoang
44
maintainer=Khoi Hoang <khoih.prog@gmail.com>
55
sentence=This library enables you to use Interrupt from Hardware Timers on an Arduino megaAVR board, such as UNO WiFi Rev2, AVR_NANO_EVERY, etc.

src/TimerInterrupt_Generic_Debug.h

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,12 @@
1818
Therefore, their executions are not blocked by bad-behaving functions / tasks.
1919
This important feature is absolutely necessary for mission-critical tasks.
2020
21-
Version: 1.4.0
21+
Version: 1.1.0
2222
2323
Version Modified By Date Comments
2424
------- ----------- ---------- -----------
25-
1.0.0 K Hoang 23/11/2019 Initial coding
26-
1.0.1 K Hoang 25/11/2019 New release fixing compiler error
27-
1.0.2 K.Hoang 28/11/2019 Permit up to 16 super-long-time, super-accurate ISR-based timers to avoid being blocked
28-
1.0.3 K.Hoang 01/12/2020 Add complex examples ISR_16_Timers_Array_Complex and ISR_16_Timers_Array_Complex
29-
1.1.1 K.Hoang 06/12/2020 Add example Change_Interval. Bump up version to sync with other TimerInterrupt Libraries
30-
1.1.2 K.Hoang 05/01/2021 Fix warnings. Optimize examples to reduce memory usage
31-
1.2.0 K.Hoang 07/01/2021 Add better debug feature. Optimize code and examples to reduce RAM usage
32-
1.3.0 K.Hoang 25/02/2021 Add support to AVR ATMEGA_32U4 such as Leonardo, YUN, ESPLORA, etc.
33-
1.4.0 K.Hoang 01/04/2021 Add support to Adafruit 32U4 and 328(P) such as FEATHER32U4, FEATHER328P, etc.
25+
1.0.0 K.Hoang 01/04/2021 Initial coding to support Arduino megaAVR ATmega4809-based boards (UNO WiFi Rev2, etc.)
26+
1.1.0 K.Hoang 14/04/2021 Fix bug. Don't use v1.0.0
3427
*****************************************************************************************************************************/
3528

3629
#pragma once

0 commit comments

Comments
 (0)