diff --git a/.github/workflows/arduino-lint.yml b/.github/workflows/arduino-lint.yml index 7f8f4ef..0ad60f4 100644 --- a/.github/workflows/arduino-lint.yml +++ b/.github/workflows/arduino-lint.yml @@ -6,8 +6,8 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 5 steps: - - uses: actions/checkout@v4 - - uses: arduino/arduino-lint-action@v1 + - uses: actions/checkout@v5 + - uses: arduino/arduino-lint-action@v2 with: library-manager: update compliance: strict \ No newline at end of file diff --git a/.github/workflows/arduino_test_runner.yml b/.github/workflows/arduino_test_runner.yml index dbd0ce7..1897982 100644 --- a/.github/workflows/arduino_test_runner.yml +++ b/.github/workflows/arduino_test_runner.yml @@ -8,7 +8,7 @@ jobs: timeout-minutes: 20 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 diff --git a/.github/workflows/jsoncheck.yml b/.github/workflows/jsoncheck.yml index 1cbb5e2..8804e69 100644 --- a/.github/workflows/jsoncheck.yml +++ b/.github/workflows/jsoncheck.yml @@ -5,13 +5,15 @@ on: paths: - '**.json' pull_request: + paths: + - '**.json' jobs: test: runs-on: ubuntu-latest timeout-minutes: 5 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: json-syntax-check uses: limitusus/json-syntax-check@v2 with: diff --git a/CHANGELOG.md b/CHANGELOG.md index 555b4fe..6d7c9b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [0.4.1] - 2025-10-12 +- update GitHub actions +- update examples +- minor edits + ## [0.4.0] - 2024-09-10 - fix #17, loop unroll option, improving performance, kudos to nt314p - added flag to select LOOP UNROLL (is optional as it gives larger code size) diff --git a/FastShiftIn.cpp b/FastShiftIn.cpp index 9c9bb84..9300b92 100644 --- a/FastShiftIn.cpp +++ b/FastShiftIn.cpp @@ -1,7 +1,7 @@ // // FILE: FastShiftIn.cpp // AUTHOR: Rob Tillaart -// VERSION: 0.4.0 +// VERSION: 0.4.1 // PURPOSE: Fast ShiftIn for 74HC165 register, AVR optimized // DATE: 2013-09-29 // URL: https://github.com/RobTillaart/FastShiftIn diff --git a/FastShiftIn.h b/FastShiftIn.h index a18f894..44c1d64 100644 --- a/FastShiftIn.h +++ b/FastShiftIn.h @@ -2,7 +2,7 @@ // // FILE: FastShiftIn.h // AUTHOR: Rob Tillaart -// VERSION: 0.4.0 +// VERSION: 0.4.1 // PURPOSE: Fast ShiftIn for 74HC165 register, AVR optimized // DATE: 2013-09-29 // URL: https://github.com/RobTillaart/FastShiftIn @@ -11,7 +11,7 @@ #include "Arduino.h" -#define FASTSHIFTIN_LIB_VERSION (F("0.4.0")) +#define FASTSHIFTIN_LIB_VERSION (F("0.4.1")) // uncomment next line to get SPEED OPTIMIZED CODE // #define FASTSHIFTIN_AVR_LOOP_UNROLLED 1 diff --git a/LICENSE b/LICENSE index 9a9ac5a..ea1e69a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2013-2024 Rob Tillaart +Copyright (c) 2013-2025 Rob Tillaart Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index cfc937e..eec16e3 100644 --- a/README.md +++ b/README.md @@ -163,6 +163,7 @@ pull up resistors, especially if wires are exceeding 10 cm (4"). - performance ESP32 - example schema - add invert flag? + - value = value ^ 0xFF; - would it be interesting to make a fastShiftIn16() etc? - squeeze performance but more maintenance.? diff --git a/examples/fastShiftIn/fastShiftIn.ino b/examples/fastShiftIn/fastShiftIn.ino index a495c60..0e483cd 100644 --- a/examples/fastShiftIn/fastShiftIn.ino +++ b/examples/fastShiftIn/fastShiftIn.ino @@ -15,13 +15,16 @@ volatile int x = 0; void setup() { Serial.begin(115200); - Serial.println(__FILE__); + Serial.println(); + Serial.println(__FILE__); + Serial.println("FASTSHIFTIN_LIB_VERSION: "); Serial.println(FASTSHIFTIN_LIB_VERSION); + Serial.println(); digitalWrite(12, HIGH); - Serial.println("\n 8 bits HIGH\n"); + Serial.println("\n 8 bits HIGH\n"); - Serial.println("\nPerformance - time in us"); + Serial.println("\nPerformance - time in us"); uint32_t start = micros(); for (int i = 0; i < 1000; i++) { @@ -39,9 +42,9 @@ void setup() } uint32_t duration2 = micros() - start; Serial.print("FastShiftIn2: "); - Serial.println(duration2 * 0.001); + Serial.println(duration2 * 0.001f); Serial.print(" Delta: "); - Serial.println((duration2 - duration1)* 0.001); + Serial.println((duration2 - duration1)* 0.001f); Serial.println(); @@ -52,7 +55,7 @@ void setup() } duration1 = micros() - start; Serial.print("Standard shiftIn1: "); - Serial.println(duration1* 0.001); + Serial.println(duration1* 0.001f); start = micros(); for (int i = 0; i < 1000; i++) @@ -62,9 +65,9 @@ void setup() } duration2 = micros() - start; Serial.print("Standard shiftIn2: "); - Serial.println(duration2 * 0.001); + Serial.println(duration2 * 0.001f); Serial.print(" Delta: "); - Serial.println((duration2 - duration1) * 0.001); + Serial.println((duration2 - duration1) * 0.001f); Serial.println(); Serial.println("done..."); @@ -76,5 +79,5 @@ void loop() } -// -- END OF FILE -- +// -- END OF FILE -- diff --git a/examples/fastShiftIn_readLSBFIRST/fastShiftIn_readLSBFIRST.ino b/examples/fastShiftIn_readLSBFIRST/fastShiftIn_readLSBFIRST.ino index 571d949..500acd3 100644 --- a/examples/fastShiftIn_readLSBFIRST/fastShiftIn_readLSBFIRST.ino +++ b/examples/fastShiftIn_readLSBFIRST/fastShiftIn_readLSBFIRST.ino @@ -15,8 +15,11 @@ volatile int x = 0; void setup() { Serial.begin(115200); + Serial.println(); Serial.println(__FILE__); + Serial.println("FASTSHIFTIN_LIB_VERSION: "); Serial.println(FASTSHIFTIN_LIB_VERSION); + Serial.println(); digitalWrite(12, HIGH); Serial.println("\n 8 bits HIGH - readLSBFIRST\n"); @@ -29,7 +32,7 @@ void setup() } uint32_t duration1 = micros() - start; Serial.print("FastShiftIn1: "); - Serial.println(duration1 * 0.001); + Serial.println(duration1 * 0.001f); start = micros(); for (int i = 0; i < 1000; i++) @@ -39,9 +42,9 @@ void setup() } uint32_t duration2 = micros() - start; Serial.print("FastShiftIn2: "); - Serial.println(duration2 * 0.001); + Serial.println(duration2 * 0.001f); Serial.print(" Delta: "); - Serial.println((duration2 - duration1) * 0.001); + Serial.println((duration2 - duration1) * 0.001f); Serial.println(); @@ -52,7 +55,7 @@ void setup() } duration1 = micros() - start; Serial.print("Standard shiftIn1: "); - Serial.println(duration1 * 0.001); + Serial.println(duration1 * 0.001f); start = micros(); for (int i = 0; i < 1000; i++) @@ -62,9 +65,9 @@ void setup() } duration2 = micros() - start; Serial.print("Standard shiftIn2: "); - Serial.println(duration2 * 0.001); + Serial.println(duration2 * 0.001f); Serial.print(" Delta: "); - Serial.println((duration2 - duration1) * 0.001); + Serial.println((duration2 - duration1) * 0.001f); Serial.println(); Serial.println("done..."); @@ -76,4 +79,4 @@ void loop() } -// -- END OF FILE -- +// -- END OF FILE -- diff --git a/examples/fastShiftIn_readMSBFIRST/fastShiftIn_readMSBFIRST.ino b/examples/fastShiftIn_readMSBFIRST/fastShiftIn_readMSBFIRST.ino index ce04e3a..b38b318 100644 --- a/examples/fastShiftIn_readMSBFIRST/fastShiftIn_readMSBFIRST.ino +++ b/examples/fastShiftIn_readMSBFIRST/fastShiftIn_readMSBFIRST.ino @@ -15,8 +15,11 @@ volatile int x = 0; void setup() { Serial.begin(115200); - Serial.print("example fastShiftIn: "); + Serial.println(); + Serial.println(__FILE__); + Serial.println("FASTSHIFTIN_LIB_VERSION: "); Serial.println(FASTSHIFTIN_LIB_VERSION); + Serial.println(); digitalWrite(12, HIGH); Serial.println("\n 8 bits HIGH\n"); @@ -29,7 +32,7 @@ void setup() } uint32_t duration1 = micros() - start; Serial.print("FastShiftIn1: "); - Serial.println(duration1 * 0.001); + Serial.println(duration1 * 0.001f); start = micros(); for (int i = 0; i < 1000; i++) @@ -39,9 +42,9 @@ void setup() } uint32_t duration2 = micros() - start; Serial.print("FastShiftIn2: "); - Serial.println(duration2 * 0.001); + Serial.println(duration2 * 0.001f); Serial.print(" Delta: "); - Serial.println((duration2 - duration1) * 0.001); + Serial.println((duration2 - duration1) * 0.001f); Serial.println(); @@ -52,7 +55,7 @@ void setup() } duration1 = micros() - start; Serial.print("Standard shiftIn1: "); - Serial.println(duration1 * 0.001); + Serial.println(duration1 * 0.001f); start = micros(); for (int i = 0; i < 1000; i++) @@ -62,9 +65,9 @@ void setup() } duration2 = micros() - start; Serial.print("Standard shiftIn2: "); - Serial.println(duration2 * 0.001); + Serial.println(duration2 * 0.001f); Serial.print(" Delta: "); - Serial.println((duration2 - duration1) * 0.001); + Serial.println((duration2 - duration1) * 0.001f); Serial.println(); Serial.println("done..."); @@ -76,5 +79,5 @@ void loop() } -// -- END OF FILE -- +// -- END OF FILE -- diff --git a/examples/fastShiftIn_test/fastShiftIn_test.ino b/examples/fastShiftIn_test/fastShiftIn_test.ino index 92625f8..adc98f6 100644 --- a/examples/fastShiftIn_test/fastShiftIn_test.ino +++ b/examples/fastShiftIn_test/fastShiftIn_test.ino @@ -16,8 +16,11 @@ uint32_t start, duration1, duration2; void setup() { Serial.begin(115200); + Serial.println(); Serial.println(__FILE__); + Serial.println("FASTSHIFTIN_LIB_VERSION: "); Serial.println(FASTSHIFTIN_LIB_VERSION); + Serial.println(); FSI.setBitOrder(MSBFIRST); @@ -58,7 +61,7 @@ void test_read() } duration1 = micros() - start; Serial.print("FastShiftIn1: "); - Serial.println(duration1 * 0.001); + Serial.println(duration1 * 0.001f); delay(100); start = micros(); @@ -69,9 +72,9 @@ void test_read() } duration2 = micros() - start; Serial.print("FastShiftIn2: "); - Serial.println(duration2 * 0.001); + Serial.println(duration2 * 0.001f); Serial.print(" Delta: "); - Serial.println((duration2 - duration1) * 0.001); + Serial.println((duration2 - duration1) * 0.001f); Serial.println(); delay(100); } @@ -86,9 +89,9 @@ void test_read16() } duration1 = micros() - start; Serial.print("FastShiftIn1: "); - Serial.println(duration1 * 0.001); + Serial.println(duration1 * 0.001f); delay(100); - + start = micros(); for (int i = 0; i < 1000; i++) { @@ -97,9 +100,9 @@ void test_read16() } duration2 = micros() - start; Serial.print("FastShiftIn2: "); - Serial.println(duration2 * 0.001); + Serial.println(duration2 * 0.001f); Serial.print(" Delta: "); - Serial.println((duration2 - duration1) * 0.001); + Serial.println((duration2 - duration1) * 0.001f); Serial.println(); delay(100); } @@ -114,9 +117,9 @@ void test_read24() } duration1 = micros() - start; Serial.print("FastShiftIn1: "); - Serial.println(duration1 * 0.001); + Serial.println(duration1 * 0.001f); delay(100); - + start = micros(); for (int i = 0; i < 1000; i++) { @@ -125,9 +128,9 @@ void test_read24() } duration2 = micros() - start; Serial.print("FastShiftIn2: "); - Serial.println(duration2 * 0.001); + Serial.println(duration2 * 0.001f); Serial.print(" Delta: "); - Serial.println((duration2 - duration1) * 0.001); + Serial.println((duration2 - duration1) * 0.001f); Serial.println(); delay(100); } @@ -142,9 +145,9 @@ void test_read32() } duration1 = micros() - start; Serial.print("FastShiftIn1: "); - Serial.println(duration1 * 0.001); + Serial.println(duration1 * 0.001f); delay(100); - + start = micros(); for (int i = 0; i < 1000; i++) { @@ -153,9 +156,9 @@ void test_read32() } duration2 = micros() - start; Serial.print("FastShiftIn2: "); - Serial.println(duration2 * 0.001); + Serial.println(duration2 * 0.001f); Serial.print(" Delta: "); - Serial.println((duration2 - duration1) * 0.001); + Serial.println((duration2 - duration1) * 0.001f); Serial.println(); delay(100); } @@ -170,9 +173,9 @@ void test_readLSBFIRST() } duration1 = micros() - start; Serial.print("FastShiftIn1: "); - Serial.println(duration1 * 0.001); + Serial.println(duration1 * 0.001f); delay(100); - + start = micros(); for (int i = 0; i < 1000; i++) { @@ -181,9 +184,9 @@ void test_readLSBFIRST() } duration2 = micros() - start; Serial.print("FastShiftIn2: "); - Serial.println(duration2 * 0.001); + Serial.println(duration2 * 0.001f); Serial.print(" Delta: "); - Serial.println((duration2 - duration1) * 0.001); + Serial.println((duration2 - duration1) * 0.001f); Serial.println(); delay(100); } @@ -198,9 +201,9 @@ void test_readMSBFIRST() } duration1 = micros() - start; Serial.print("FastShiftIn1: "); - Serial.println(duration1 * 0.001); + Serial.println(duration1 * 0.001f); delay(100); - + start = micros(); for (int i = 0; i < 1000; i++) { @@ -209,9 +212,9 @@ void test_readMSBFIRST() } duration2 = micros() - start; Serial.print("FastShiftIn2: "); - Serial.println(duration2 * 0.001); + Serial.println(duration2 * 0.001f); Serial.print(" Delta: "); - Serial.println((duration2 - duration1) * 0.001); + Serial.println((duration2 - duration1) * 0.001f); Serial.println(); delay(100); } @@ -226,9 +229,9 @@ void test_reference() } duration1 = micros() - start; Serial.print("Standard shiftIn1: "); - Serial.println(duration1 * 0.001); + Serial.println(duration1 * 0.001f); delay(100); - + start = micros(); for (int i = 0; i < 1000; i++) { @@ -237,9 +240,9 @@ void test_reference() } duration2 = micros() - start; Serial.print("Standard shiftIn2: "); - Serial.println(duration2 * 0.001); + Serial.println(duration2 * 0.001f); Serial.print(" Delta: "); - Serial.println((duration2 - duration1) * 0.001); + Serial.println((duration2 - duration1) * 0.001f); Serial.println(); delay(100); } diff --git a/examples/fastShiftIn_test_read/fastShiftIn_test_read.ino b/examples/fastShiftIn_test_read/fastShiftIn_test_read.ino index 49aaee7..2b4550c 100644 --- a/examples/fastShiftIn_test_read/fastShiftIn_test_read.ino +++ b/examples/fastShiftIn_test_read/fastShiftIn_test_read.ino @@ -13,12 +13,15 @@ FastShiftIn FSI(8, 9); void setup() { Serial.begin(115200); + Serial.println(); Serial.println(__FILE__); + Serial.println("FASTSHIFTIN_LIB_VERSION: "); Serial.println(FASTSHIFTIN_LIB_VERSION); + Serial.println(); uint8_t x = FSI.read(); Serial.println(x, HEX); - + x = FSI.readLSBFIRST(); Serial.println(x, HEX); @@ -34,4 +37,4 @@ void loop() } -// -- END OF FILE -- +// -- END OF FILE -- diff --git a/library.json b/library.json index edbe25d..b2e0154 100644 --- a/library.json +++ b/library.json @@ -15,7 +15,7 @@ "type": "git", "url": "https://github.com/RobTillaart/FastShiftIn.git" }, - "version": "0.4.0", + "version": "0.4.1", "license": "MIT", "frameworks": "*", "platforms": "*", diff --git a/library.properties b/library.properties index bdff2f6..9ba15dd 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=FastShiftIn -version=0.4.0 +version=0.4.1 author=Rob Tillaart maintainer=Rob Tillaart sentence=Arduino library for (AVR) optimized shiftIn - e.g. for 74HC165