|
17 | 17 | * [Currently supported Boards](#currently-supported-boards)
|
18 | 18 | * [Important Notes about ISR](#important-notes-about-isr)
|
19 | 19 | * [Changelog](#changelog)
|
| 20 | + * [Releases v1.4.0](#releases-v140) |
20 | 21 | * [Releases v1.3.0](#releases-v130)
|
21 | 22 | * [Releases v1.2.0](#releases-v120)
|
22 | 23 | * [Releases v1.1.1](#releases-v111)
|
|
46 | 47 | * [ 9. RPM_Measure](examples/RPM_Measure)
|
47 | 48 | * [ 10. SwitchDebounce](examples/SwitchDebounce)
|
48 | 49 | * [ 11. TimerInterruptTest](examples/TimerInterruptTest)
|
| 50 | + * [ 12. ISR_16_Timers_Array](examples/ISR_16_Timers_Array) **New** |
| 51 | + * [ 13. ISR_16_Timers_Array_Complex](examples/ISR_16_Timers_Array_Complex) **New** |
49 | 52 | * [Example ISR_Timer_Complex](#example-isr_timer_complex)
|
50 | 53 | * [Debug Terminal Output Samples](#debug-terminal-output-samples)
|
51 | 54 | * [1. ISR_Timer_Complex on ESP8266_NODEMCU_ESP12E](#1-isr_timer_complex-on-esp8266_nodemcu_esp12e)
|
52 | 55 | * [2. TimerInterruptTest on ESP8266_NODEMCU_ESP12E](#2-timerinterrupttest-on-esp8266_nodemcu_esp12e)
|
53 | 56 | * [3. Change_Interval on ESP8266_NODEMCU_ESP12E](#3-change_interval-on-esp8266_nodemcu_esp12e)
|
| 57 | + * [4. ISR_16_Timers_Array on ESP8266_NODEMCU_ESP12E](#4-isr_16_timers_array-on-esp8266_nodemcu_esp12e) |
| 58 | + * [5. ISR_16_Timers_Array_Complex on ESP8266_NODEMCU_ESP12E](#5-isr_16_timers_array_complex-on-esp8266_nodemcu_esp12e) |
54 | 59 | * [Debug](#debug)
|
55 | 60 | * [Troubleshooting](#troubleshooting)
|
56 | 61 | * [Releases](#releases)
|
@@ -124,6 +129,11 @@ The catch is **your function is now part of an ISR (Interrupt Service Routine),
|
124 | 129 |
|
125 | 130 | ## Changelog
|
126 | 131 |
|
| 132 | +### Releases v1.4.0 |
| 133 | + |
| 134 | +1. Fix compiler errors due to conflict to some libraries. |
| 135 | +2. Add complex examples. |
| 136 | + |
127 | 137 | ### Releases v1.3.0
|
128 | 138 |
|
129 | 139 | 1. Update to match new ESP8266 core v3.0.0
|
@@ -162,7 +172,7 @@ The catch is **your function is now part of an ISR (Interrupt Service Routine),
|
162 | 172 |
|
163 | 173 | ## Prerequisites
|
164 | 174 |
|
165 |
| -1. [`Arduino IDE 1.8.13+`](https://www.arduino.cc/en/Main/Software) |
| 175 | +1. [`Arduino IDE 1.8.15+`](https://www.arduino.cc/en/Main/Software) |
166 | 176 | 2. [`ESP8266 Core 3.0.0+`](https://github.com/esp8266/Arduino) for ESP8266-based boards. [](https://github.com/esp8266/Arduino/releases/latest/). To use ESP8266 core 2.7.1+ for LittleFS.
|
167 | 177 | 3. [`Blynk_WM library v1.5.0+`](https://github.com/khoih-prog/Blynk_WM) to use with some examples. To install. check [](https://www.ardu-badge.com/Blynk_WiFiManager)
|
168 | 178 |
|
@@ -280,7 +290,9 @@ You'll see blynkTimer Software is blocked while system is connecting to WiFi / I
|
280 | 290 | 8. [RPM_Measure](examples/RPM_Measure)
|
281 | 291 | 9. [SwitchDebounce](examples/SwitchDebounce)
|
282 | 292 | 10. [TimerInterruptTest](examples/TimerInterruptTest)
|
283 |
| -11. [**Change_Interval**](examples/Change_Interval). New. |
| 293 | +11. [Change_Interval](examples/Change_Interval). |
| 294 | +12. [**ISR_16_Timers_Array**](examples/ISR_16_Timers_Array) **New** |
| 295 | +13. [**ISR_16_Timers_Array_Complex**](examples/ISR_16_Timers_Array_Complex) **New** |
284 | 296 |
|
285 | 297 | ---
|
286 | 298 | ---
|
@@ -516,7 +528,7 @@ While software timer, **programmed for 2s, is activated after 4.258s !!!**
|
516 | 528 |
|
517 | 529 | ```
|
518 | 530 | Starting ISR_Timer_Complex on ESP8266_NODEMCU_ESP12E
|
519 |
| -ESP8266TimerInterrupt v1.3.0 |
| 531 | +ESP8266TimerInterrupt v1.4.0 |
520 | 532 | CPU Frequency = 160 MHz
|
521 | 533 | ESP8266TimerInterrupt: _fre = 312500.00, _count = 15625
|
522 | 534 | Starting ITimer OK, millis() = 64
|
@@ -564,7 +576,7 @@ The following is the sample terminal output when running example [TimerInterrupt
|
564 | 576 |
|
565 | 577 | ```
|
566 | 578 | Starting TimerInterruptTest on ESP8266_NODEMCU_ESP12E
|
567 |
| -ESP8266TimerInterrupt v1.3.0 |
| 579 | +ESP8266TimerInterrupt v1.4.0 |
568 | 580 | CPU Frequency = 160 MHz
|
569 | 581 | ESP8266TimerInterrupt: _fre = 312500.00, _count = 312500
|
570 | 582 | Starting ITimer OK, millis() = 262
|
@@ -596,7 +608,7 @@ The following is the sample terminal output when running example [Change_Interva
|
596 | 608 |
|
597 | 609 | ```
|
598 | 610 | Starting Change_Interval on ESP8266_NODEMCU_ESP12E
|
599 |
| -ESP8266TimerInterrupt v1.3.0 |
| 611 | +ESP8266TimerInterrupt v1.4.0 |
600 | 612 | CPU Frequency = 160 MHz
|
601 | 613 | Starting ITimer OK, millis() = 162
|
602 | 614 | Time = 10001, TimerCount = 19
|
@@ -627,6 +639,229 @@ Time = 170017, TimerCount = 259
|
627 | 639 | Time = 180018, TimerCount = 279
|
628 | 640 | ```
|
629 | 641 |
|
| 642 | +--- |
| 643 | + |
| 644 | +### 4. ISR_16_Timers_Array on ESP8266_NODEMCU_ESP12E |
| 645 | + |
| 646 | +The following is the sample terminal output when running example [ISR_16_Timers_Array](examples/ISR_16_Timers_Array) on **ESP8266_NODEMCU_ESP12E** to demonstrate of ISR Hardware Timer, especially when system is very busy or blocked. The 16 independent ISR timers are programmed to be activated repetitively after certain intervals, is activated exactly after that programmed interval !!! |
| 647 | + |
| 648 | +``` |
| 649 | +Starting ISR_16_Timers_Array on ESP8266_NODEMCU_ESP12E |
| 650 | +ESP8266TimerInterrupt v1.4.0 |
| 651 | +CPU Frequency = 160 MHz |
| 652 | +Starting ITimer OK, millis() = 175 |
| 653 | +1s: Delta ms = 1003, ms = 1178 |
| 654 | +1s: Delta ms = 999, ms = 2177 |
| 655 | +2s: Delta ms = 2002, ms = 2177 |
| 656 | +1s: Delta ms = 1000, ms = 3177 |
| 657 | +3s: Delta ms = 3002, ms = 3177 |
| 658 | +1s: Delta ms = 1000, ms = 4177 |
| 659 | +2s: Delta ms = 2000, ms = 4177 |
| 660 | +4s: Delta ms = 4002, ms = 4177 |
| 661 | +1s: Delta ms = 1000, ms = 5177 |
| 662 | +5s: Delta ms = 5002, ms = 5177 |
| 663 | +1s: Delta ms = 1000, ms = 6177 |
| 664 | +2s: Delta ms = 2001, ms = 6178 |
| 665 | +3s: Delta ms = 3001, ms = 6178 |
| 666 | +6s: Delta ms = 6003, ms = 6178 |
| 667 | +1s: Delta ms = 1000, ms = 7177 |
| 668 | +7s: Delta ms = 7002, ms = 7177 |
| 669 | +1s: Delta ms = 1000, ms = 8177 |
| 670 | +2s: Delta ms = 1999, ms = 8177 |
| 671 | +4s: Delta ms = 4000, ms = 8177 |
| 672 | +8s: Delta ms = 8002, ms = 8177 |
| 673 | +1s: Delta ms = 1000, ms = 9177 |
| 674 | +3s: Delta ms = 2999, ms = 9177 |
| 675 | +9s: Delta ms = 9002, ms = 9177 |
| 676 | +simpleTimerDoingSomething2s: Delta programmed ms = 2000, actual = 10002 |
| 677 | +1s: Delta ms = 1000, ms = 10177 |
| 678 | +2s: Delta ms = 2000, ms = 10177 |
| 679 | +5s: Delta ms = 5001, ms = 10178 |
| 680 | +10s: Delta ms = 10006, ms = 10181 |
| 681 | +1s: Delta ms = 1000, ms = 11177 |
| 682 | +11s: Delta ms = 11003, ms = 11178 |
| 683 | +1s: Delta ms = 1000, ms = 12177 |
| 684 | +2s: Delta ms = 2000, ms = 12177 |
| 685 | +3s: Delta ms = 3000, ms = 12177 |
| 686 | +4s: Delta ms = 4000, ms = 12177 |
| 687 | +6s: Delta ms = 5999, ms = 12177 |
| 688 | +12s: Delta ms = 12005, ms = 12180 |
| 689 | +1s: Delta ms = 1000, ms = 13177 |
| 690 | +13s: Delta ms = 13002, ms = 13177 |
| 691 | +1s: Delta ms = 1000, ms = 14177 |
| 692 | +2s: Delta ms = 2000, ms = 14177 |
| 693 | +7s: Delta ms = 7000, ms = 14177 |
| 694 | +14s: Delta ms = 14002, ms = 14177 |
| 695 | +1s: Delta ms = 1000, ms = 15177 |
| 696 | +3s: Delta ms = 3000, ms = 15177 |
| 697 | +5s: Delta ms = 4999, ms = 15177 |
| 698 | +15s: Delta ms = 15002, ms = 15177 |
| 699 | +1s: Delta ms = 1000, ms = 16177 |
| 700 | +2s: Delta ms = 2000, ms = 16177 |
| 701 | +4s: Delta ms = 4001, ms = 16178 |
| 702 | +8s: Delta ms = 8001, ms = 16178 |
| 703 | +16s: Delta ms = 16003, ms = 16178 |
| 704 | +1s: Delta ms = 1000, ms = 17177 |
| 705 | +1s: Delta ms = 1000, ms = 18177 |
| 706 | +2s: Delta ms = 2000, ms = 18177 |
| 707 | +3s: Delta ms = 3000, ms = 18177 |
| 708 | +6s: Delta ms = 6000, ms = 18177 |
| 709 | +9s: Delta ms = 9001, ms = 18178 |
| 710 | +1s: Delta ms = 1000, ms = 19177 |
| 711 | +simpleTimerDoingSomething2s: Delta programmed ms = 2000, actual = 10000 |
| 712 | +``` |
| 713 | + |
| 714 | +--- |
| 715 | + |
| 716 | +### 5. ISR_16_Timers_Array_Complex on ESP8266_NODEMCU_ESP12E |
| 717 | + |
| 718 | +The following is the sample terminal output when running example [ISR_16_Timers_Array_Complex](examples/ISR_16_Timers_Array_Complex) on **ESP8266_NODEMCU_ESP12E** to demonstrate of ISR Hardware Timer, especially when system is very busy or blocked. The 16 independent ISR timers are programmed to be activated repetitively after certain intervals, is activated exactly after that programmed interval !!! |
| 719 | + |
| 720 | + |
| 721 | +``` |
| 722 | +Starting ISR_16_Timers_Array_Complex on ESP8266_NODEMCU_ESP12E |
| 723 | +ESP8266TimerInterrupt v1.4.0 |
| 724 | +CPU Frequency = 160 MHz |
| 725 | +Starting ITimer OK, millis() = 177 |
| 726 | +SimpleTimer : 2, ms : 10179, Dms : 10000 |
| 727 | +Timer : 0, programmed : 5000, actual : 5008 |
| 728 | +Timer : 1, programmed : 10000, actual : 0 |
| 729 | +Timer : 2, programmed : 15000, actual : 0 |
| 730 | +Timer : 3, programmed : 20000, actual : 0 |
| 731 | +Timer : 4, programmed : 25000, actual : 0 |
| 732 | +Timer : 5, programmed : 30000, actual : 0 |
| 733 | +Timer : 6, programmed : 35000, actual : 0 |
| 734 | +Timer : 7, programmed : 40000, actual : 0 |
| 735 | +Timer : 8, programmed : 45000, actual : 0 |
| 736 | +Timer : 9, programmed : 50000, actual : 0 |
| 737 | +Timer : 10, programmed : 55000, actual : 0 |
| 738 | +Timer : 11, programmed : 60000, actual : 0 |
| 739 | +Timer : 12, programmed : 65000, actual : 0 |
| 740 | +Timer : 13, programmed : 70000, actual : 0 |
| 741 | +Timer : 14, programmed : 75000, actual : 0 |
| 742 | +Timer : 15, programmed : 80000, actual : 0 |
| 743 | +SimpleTimer : 2, ms : 20232, Dms : 10053 |
| 744 | +Timer : 0, programmed : 5000, actual : 5000 |
| 745 | +Timer : 1, programmed : 10000, actual : 10000 |
| 746 | +Timer : 2, programmed : 15000, actual : 15008 |
| 747 | +Timer : 3, programmed : 20000, actual : 20008 |
| 748 | +Timer : 4, programmed : 25000, actual : 0 |
| 749 | +Timer : 5, programmed : 30000, actual : 0 |
| 750 | +Timer : 6, programmed : 35000, actual : 0 |
| 751 | +Timer : 7, programmed : 40000, actual : 0 |
| 752 | +Timer : 8, programmed : 45000, actual : 0 |
| 753 | +Timer : 9, programmed : 50000, actual : 0 |
| 754 | +Timer : 10, programmed : 55000, actual : 0 |
| 755 | +Timer : 11, programmed : 60000, actual : 0 |
| 756 | +Timer : 12, programmed : 65000, actual : 0 |
| 757 | +Timer : 13, programmed : 70000, actual : 0 |
| 758 | +Timer : 14, programmed : 75000, actual : 0 |
| 759 | +Timer : 15, programmed : 80000, actual : 0 |
| 760 | +SimpleTimer : 2, ms : 30286, Dms : 10054 |
| 761 | +Timer : 0, programmed : 5000, actual : 5000 |
| 762 | +Timer : 1, programmed : 10000, actual : 10000 |
| 763 | +Timer : 2, programmed : 15000, actual : 15000 |
| 764 | +Timer : 3, programmed : 20000, actual : 20008 |
| 765 | +Timer : 4, programmed : 25000, actual : 25008 |
| 766 | +Timer : 5, programmed : 30000, actual : 30008 |
| 767 | +Timer : 6, programmed : 35000, actual : 0 |
| 768 | +Timer : 7, programmed : 40000, actual : 0 |
| 769 | +Timer : 8, programmed : 45000, actual : 0 |
| 770 | +Timer : 9, programmed : 50000, actual : 0 |
| 771 | +Timer : 10, programmed : 55000, actual : 0 |
| 772 | +Timer : 11, programmed : 60000, actual : 0 |
| 773 | +Timer : 12, programmed : 65000, actual : 0 |
| 774 | +Timer : 13, programmed : 70000, actual : 0 |
| 775 | +Timer : 14, programmed : 75000, actual : 0 |
| 776 | +Timer : 15, programmed : 80000, actual : 0 |
| 777 | +SimpleTimer : 2, ms : 40341, Dms : 10055 |
| 778 | +Timer : 0, programmed : 5000, actual : 5000 |
| 779 | +Timer : 1, programmed : 10000, actual : 10000 |
| 780 | +Timer : 2, programmed : 15000, actual : 15000 |
| 781 | +Timer : 3, programmed : 20000, actual : 20000 |
| 782 | +Timer : 4, programmed : 25000, actual : 25008 |
| 783 | +Timer : 5, programmed : 30000, actual : 30008 |
| 784 | +Timer : 6, programmed : 35000, actual : 35008 |
| 785 | +Timer : 7, programmed : 40000, actual : 40008 |
| 786 | +Timer : 8, programmed : 45000, actual : 0 |
| 787 | +Timer : 9, programmed : 50000, actual : 0 |
| 788 | +Timer : 10, programmed : 55000, actual : 0 |
| 789 | +Timer : 11, programmed : 60000, actual : 0 |
| 790 | +Timer : 12, programmed : 65000, actual : 0 |
| 791 | +Timer : 13, programmed : 70000, actual : 0 |
| 792 | +Timer : 14, programmed : 75000, actual : 0 |
| 793 | +Timer : 15, programmed : 80000, actual : 0 |
| 794 | +SimpleTimer : 2, ms : 50396, Dms : 10055 |
| 795 | +Timer : 0, programmed : 5000, actual : 5000 |
| 796 | +Timer : 1, programmed : 10000, actual : 10000 |
| 797 | +Timer : 2, programmed : 15000, actual : 15000 |
| 798 | +Timer : 3, programmed : 20000, actual : 20000 |
| 799 | +Timer : 4, programmed : 25000, actual : 25000 |
| 800 | +Timer : 5, programmed : 30000, actual : 30008 |
| 801 | +Timer : 6, programmed : 35000, actual : 35008 |
| 802 | +Timer : 7, programmed : 40000, actual : 40008 |
| 803 | +Timer : 8, programmed : 45000, actual : 45008 |
| 804 | +Timer : 9, programmed : 50000, actual : 50008 |
| 805 | +Timer : 10, programmed : 55000, actual : 0 |
| 806 | +Timer : 11, programmed : 60000, actual : 0 |
| 807 | +Timer : 12, programmed : 65000, actual : 0 |
| 808 | +Timer : 13, programmed : 70000, actual : 0 |
| 809 | +Timer : 14, programmed : 75000, actual : 0 |
| 810 | +Timer : 15, programmed : 80000, actual : 0 |
| 811 | +SimpleTimer : 2, ms : 60452, Dms : 10056 |
| 812 | +Timer : 0, programmed : 5000, actual : 5000 |
| 813 | +Timer : 1, programmed : 10000, actual : 10000 |
| 814 | +Timer : 2, programmed : 15000, actual : 15000 |
| 815 | +Timer : 3, programmed : 20000, actual : 20000 |
| 816 | +Timer : 4, programmed : 25000, actual : 25000 |
| 817 | +Timer : 5, programmed : 30000, actual : 30000 |
| 818 | +Timer : 6, programmed : 35000, actual : 35008 |
| 819 | +Timer : 7, programmed : 40000, actual : 40008 |
| 820 | +Timer : 8, programmed : 45000, actual : 45008 |
| 821 | +Timer : 9, programmed : 50000, actual : 50008 |
| 822 | +Timer : 10, programmed : 55000, actual : 55008 |
| 823 | +Timer : 11, programmed : 60000, actual : 60008 |
| 824 | +Timer : 12, programmed : 65000, actual : 0 |
| 825 | +Timer : 13, programmed : 70000, actual : 0 |
| 826 | +Timer : 14, programmed : 75000, actual : 0 |
| 827 | +Timer : 15, programmed : 80000, actual : 0 |
| 828 | +SimpleTimer : 2, ms : 70509, Dms : 10057 |
| 829 | +Timer : 0, programmed : 5000, actual : 5000 |
| 830 | +Timer : 1, programmed : 10000, actual : 10000 |
| 831 | +Timer : 2, programmed : 15000, actual : 15000 |
| 832 | +Timer : 3, programmed : 20000, actual : 20000 |
| 833 | +Timer : 4, programmed : 25000, actual : 25000 |
| 834 | +Timer : 5, programmed : 30000, actual : 30000 |
| 835 | +Timer : 6, programmed : 35000, actual : 35000 |
| 836 | +Timer : 7, programmed : 40000, actual : 40008 |
| 837 | +Timer : 8, programmed : 45000, actual : 45008 |
| 838 | +Timer : 9, programmed : 50000, actual : 50008 |
| 839 | +Timer : 10, programmed : 55000, actual : 55008 |
| 840 | +Timer : 11, programmed : 60000, actual : 60008 |
| 841 | +Timer : 12, programmed : 65000, actual : 65008 |
| 842 | +Timer : 13, programmed : 70000, actual : 70008 |
| 843 | +Timer : 14, programmed : 75000, actual : 0 |
| 844 | +Timer : 15, programmed : 80000, actual : 0 |
| 845 | +SimpleTimer : 2, ms : 80566, Dms : 10057 |
| 846 | +Timer : 0, programmed : 5000, actual : 5000 |
| 847 | +Timer : 1, programmed : 10000, actual : 10000 |
| 848 | +Timer : 2, programmed : 15000, actual : 15000 |
| 849 | +Timer : 3, programmed : 20000, actual : 20000 |
| 850 | +Timer : 4, programmed : 25000, actual : 25000 |
| 851 | +Timer : 5, programmed : 30000, actual : 30000 |
| 852 | +Timer : 6, programmed : 35000, actual : 35000 |
| 853 | +Timer : 7, programmed : 40000, actual : 40000 |
| 854 | +Timer : 8, programmed : 45000, actual : 45008 |
| 855 | +Timer : 9, programmed : 50000, actual : 50008 |
| 856 | +Timer : 10, programmed : 55000, actual : 55008 |
| 857 | +Timer : 11, programmed : 60000, actual : 60008 |
| 858 | +Timer : 12, programmed : 65000, actual : 65008 |
| 859 | +Timer : 13, programmed : 70000, actual : 70008 |
| 860 | +Timer : 14, programmed : 75000, actual : 75008 |
| 861 | +Timer : 15, programmed : 80000, actual : 80008 |
| 862 | +
|
| 863 | +``` |
| 864 | + |
630 | 865 | ---
|
631 | 866 | ---
|
632 | 867 |
|
@@ -657,6 +892,11 @@ Sometimes, the library will only work if you update the board core to the latest
|
657 | 892 |
|
658 | 893 | ## Releases
|
659 | 894 |
|
| 895 | +### Releases v1.4.0 |
| 896 | + |
| 897 | +1. Fix compiler errors due to conflict to some libraries. |
| 898 | +2. Add complex examples. |
| 899 | + |
660 | 900 | ### Releases v1.3.0
|
661 | 901 |
|
662 | 902 | 1. Update to match new ESP8266 core v3.0.0
|
@@ -722,6 +962,8 @@ Submit issues to: [ESP8266TimerInterrupt issues](https://github.com/khoih-prog/E
|
722 | 962 | 3. Longer time interval
|
723 | 963 | 4. Similar features for remaining Arduino boards such as AVR, Teensy, SAMD21, SAMD51, SAM-DUE, nRF52, ESP32, STM32, etc.
|
724 | 964 | 5. Update to match new ESP8266 core v3.0.0
|
| 965 | +6. Fix compiler errors due to conflict to some libraries. |
| 966 | +7. Add complex examples. |
725 | 967 |
|
726 | 968 | ---
|
727 | 969 | ---
|
|
0 commit comments