diff --git a/libraries/FRAM_I2C/.arduino-ci.yml b/libraries/FRAM_I2C/.arduino-ci.yml index 77a333f9..ba0ffe0d 100644 --- a/libraries/FRAM_I2C/.arduino-ci.yml +++ b/libraries/FRAM_I2C/.arduino-ci.yml @@ -25,4 +25,5 @@ compile: - esp8266 # - mega2560 - rpipico + - nano_every diff --git a/libraries/FRAM_I2C/.github/workflows/arduino-lint.yml b/libraries/FRAM_I2C/.github/workflows/arduino-lint.yml index b2ca058c..8a26f14a 100644 --- a/libraries/FRAM_I2C/.github/workflows/arduino-lint.yml +++ b/libraries/FRAM_I2C/.github/workflows/arduino-lint.yml @@ -6,7 +6,7 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: arduino/arduino-lint-action@v1 with: library-manager: update diff --git a/libraries/FRAM_I2C/.github/workflows/arduino_test_runner.yml b/libraries/FRAM_I2C/.github/workflows/arduino_test_runner.yml index 096b975b..ca0ae342 100644 --- a/libraries/FRAM_I2C/.github/workflows/arduino_test_runner.yml +++ b/libraries/FRAM_I2C/.github/workflows/arduino_test_runner.yml @@ -8,10 +8,10 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 - run: | - gem install arduino_ci + gem install arduino_ci -v 1.3.0 arduino_ci.rb diff --git a/libraries/FRAM_I2C/.github/workflows/jsoncheck.yml b/libraries/FRAM_I2C/.github/workflows/jsoncheck.yml index 04603d08..37a11298 100644 --- a/libraries/FRAM_I2C/.github/workflows/jsoncheck.yml +++ b/libraries/FRAM_I2C/.github/workflows/jsoncheck.yml @@ -10,7 +10,7 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: json-syntax-check uses: limitusus/json-syntax-check@v1 with: diff --git a/libraries/FRAM_I2C/CHANGELOG.md b/libraries/FRAM_I2C/CHANGELOG.md index 0fbb7617..c5052643 100644 --- a/libraries/FRAM_I2C/CHANGELOG.md +++ b/libraries/FRAM_I2C/CHANGELOG.md @@ -5,88 +5,60 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). -## [0.4.2] - 2022-10-03 +## [0.4.3] - 2022-12-28 +- add writeFloat(), readFloat() +- refactor +- add nano_every to build-ci (test) +- update readme.md +- update license +- update Github actions to v3 (test) +- simplified changelog -### Added + +## [0.4.2] - 2022-10-03 - FRAM_RINGBUFFER class - see FRAM_RINGBUFFER.md - build-ci support for RP2040 pico - -### Changed - updated documentation - moved code from FRAM.h to FRAM.cpp - ## [0.4.1] - 2022-09-24 - -### Added - changed ESP32 **begin()** parameters to **int** to prevent link error. see https://github.com/RobTillaart/PCA9635/issues/17 - -### Changed - updated documentation - ## [0.4.0] - 2022-05-02 - -### Added - add **FRAM32** derived class to support the MB85RC1MT as it need 32 bits addressing. This class uses 4 byte memory addresses internally. Note **FRAM32** can also address 16 bit FRAM devices. - - -### Changed - updated documentation -### Fixed - - +---- ## [0.3.6] - 2022-05-02 - -### Added - add **void sleep()** experimental. - add **bool wakeup(trec = 400)** experimental. wakeup time of 400us. returns true if connected after call. - add example **FRAM_sleep.ino** - -### Changed - updated readme.md - updated keywords.txt - -### Fixed - minor edits - ## [0.3.5] - 2022-03-23 - -### Added - add **uint32_t clear(uint8_t value = 0)** - add **void setSizeBytes(uint32_t value)** - added defines for size of known types for e.g. **void setSizeBytes(uint32_t value)** - add \_sizeinBytes private var. Needed in clear a.o. - -### Changed - **getSize()** automatically called in **begin()** - updated example **FRAM_clear.ino** - renamed private functions with \_ - updated readme.md -### Fixed - - ## [0.3.4] - 2022-03-16 - -### Added - add **uint16_t writeObject(memaddr, &obj)** see #13 - add **uint16_t readObject(memaddr, &obj)** see #13 - add examples for write- and readObject() - -### Changed - renamed releaseNotes.md => CHANGELOG.md - some edits in readme.md -### Fixed - - ## [0.3.3] - 2022-02-08 - added **getSizeBytes()** - created releaseNotes.md @@ -107,6 +79,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - fix #2 ESP32 - add WireN support +---- + ## [0.2.3] - 2021-01-11 - fix getMetaData (kudos to PraxisSoft) diff --git a/libraries/FRAM_I2C/FRAM.cpp b/libraries/FRAM_I2C/FRAM.cpp index 98cf58a8..071aadaa 100644 --- a/libraries/FRAM_I2C/FRAM.cpp +++ b/libraries/FRAM_I2C/FRAM.cpp @@ -1,7 +1,7 @@ // // FILE: FRAM.cpp // AUTHOR: Rob Tillaart -// VERSION: 0.4.2 +// VERSION: 0.4.3 // DATE: 2018-01-24 // PURPOSE: Arduino library for I2C FRAM // URL: https://github.com/RobTillaart/FRAM_I2C @@ -94,21 +94,35 @@ bool FRAM::isConnected() void FRAM::write8(uint16_t memaddr, uint8_t value) { uint8_t val = value; - _writeBlock(memaddr, (uint8_t *)&val, 1); + _writeBlock(memaddr, (uint8_t *)&val, sizeof(uint8_t)); } void FRAM::write16(uint16_t memaddr, uint16_t value) { uint16_t val = value; - _writeBlock(memaddr, (uint8_t *)&val, 2); + _writeBlock(memaddr, (uint8_t *)&val, sizeof(uint16_t)); } void FRAM::write32(uint16_t memaddr, uint32_t value) { uint32_t val = value; - _writeBlock(memaddr, (uint8_t *)&val, 4); + _writeBlock(memaddr, (uint8_t *)&val, sizeof(uint32_t)); +} + + +void FRAM::writeFloat(uint16_t memaddr, float value) +{ + float val = value; + _writeBlock(memaddr, (uint8_t *)&val, sizeof(float)); +} + + +void FRAM::writeDouble(uint16_t memaddr, double value) +{ + double val = value; + _writeBlock(memaddr, (uint8_t *)&val, sizeof(double)); } @@ -134,7 +148,7 @@ void FRAM::write(uint16_t memaddr, uint8_t * obj, uint16_t size) uint8_t FRAM::read8(uint16_t memaddr) { uint8_t val; - _readBlock(memaddr, (uint8_t *)&val, 1); + _readBlock(memaddr, (uint8_t *)&val, sizeof(uint8_t)); return val; } @@ -142,7 +156,7 @@ uint8_t FRAM::read8(uint16_t memaddr) uint16_t FRAM::read16(uint16_t memaddr) { uint16_t val; - _readBlock(memaddr, (uint8_t *)&val, 2); + _readBlock(memaddr, (uint8_t *)&val, sizeof(uint16_t)); return val; } @@ -150,7 +164,23 @@ uint16_t FRAM::read16(uint16_t memaddr) uint32_t FRAM::read32(uint16_t memaddr) { uint32_t val; - _readBlock(memaddr, (uint8_t *)&val, 4); + _readBlock(memaddr, (uint8_t *)&val, sizeof(uint32_t)); + return val; +} + + +float FRAM::readFloat(uint16_t memaddr) +{ + float val; + _readBlock(memaddr, (uint8_t *)&val, sizeof(float)); + return val; +} + + +double FRAM::readDouble(uint16_t memaddr) +{ + double val; + _readBlock(memaddr, (uint8_t *)&val, sizeof(double)); return val; } @@ -345,21 +375,35 @@ FRAM32::FRAM32(TwoWire *wire):FRAM(wire) void FRAM32::write8(uint32_t memaddr, uint8_t value) { uint8_t val = value; - _writeBlock(memaddr, (uint8_t *)&val, 1); + _writeBlock(memaddr, (uint8_t *)&val, sizeof(uint8_t)); } void FRAM32::write16(uint32_t memaddr, uint16_t value) { uint16_t val = value; - _writeBlock(memaddr, (uint8_t *)&val, 2); + _writeBlock(memaddr, (uint8_t *)&val, sizeof(uint16_t)); } void FRAM32::write32(uint32_t memaddr, uint32_t value) { uint32_t val = value; - _writeBlock(memaddr, (uint8_t *)&val, 4); + _writeBlock(memaddr, (uint8_t *)&val, sizeof(uint32_t)); +} + + +void FRAM32::writeFloat(uint32_t memaddr, float value) +{ + float val = value; + _writeBlock(memaddr, (uint8_t *)&val, sizeof(float)); +} + + +void FRAM32::writeDouble(uint32_t memaddr, double value) +{ + double val = value; + _writeBlock(memaddr, (uint8_t *)&val, sizeof(double)); } @@ -385,7 +429,7 @@ void FRAM32::write(uint32_t memaddr, uint8_t * obj, uint16_t size) uint8_t FRAM32::read8(uint32_t memaddr) { uint8_t val; - _readBlock(memaddr, (uint8_t *)&val, 1); + _readBlock(memaddr, (uint8_t *)&val, sizeof(uint8_t)); return val; } @@ -393,7 +437,7 @@ uint8_t FRAM32::read8(uint32_t memaddr) uint16_t FRAM32::read16(uint32_t memaddr) { uint16_t val; - _readBlock(memaddr, (uint8_t *)&val, 2); + _readBlock(memaddr, (uint8_t *)&val, sizeof(uint16_t)); return val; } @@ -401,7 +445,23 @@ uint16_t FRAM32::read16(uint32_t memaddr) uint32_t FRAM32::read32(uint32_t memaddr) { uint32_t val; - _readBlock(memaddr, (uint8_t *)&val, 4); + _readBlock(memaddr, (uint8_t *)&val, sizeof(uint32_t)); + return val; +} + + +float FRAM32::readFloat(uint32_t memaddr) +{ + float val; + _readBlock(memaddr, (uint8_t *)&val, sizeof(float)); + return val; +} + + +double FRAM32::readDouble(uint32_t memaddr) +{ + double val; + _readBlock(memaddr, (uint8_t *)&val, sizeof(double)); return val; } diff --git a/libraries/FRAM_I2C/FRAM.h b/libraries/FRAM_I2C/FRAM.h index f2510661..242b0bc3 100644 --- a/libraries/FRAM_I2C/FRAM.h +++ b/libraries/FRAM_I2C/FRAM.h @@ -2,7 +2,7 @@ // // FILE: FRAM.h // AUTHOR: Rob Tillaart -// VERSION: 0.4.2 +// VERSION: 0.4.3 // DATE: 2018-01-24 // PURPOSE: Arduino library for I2C FRAM // URL: https://github.com/RobTillaart/FRAM_I2C @@ -13,7 +13,7 @@ #include "Wire.h" -#define FRAM_LIB_VERSION (F("0.4.2")) +#define FRAM_LIB_VERSION (F("0.4.3")) #define FRAM_OK 0 @@ -49,11 +49,15 @@ public: void write8(uint16_t memaddr, uint8_t value); void write16(uint16_t memaddr, uint16_t value); void write32(uint16_t memaddr, uint32_t value); + void writeFloat(uint16_t memaddr, float value); + void writeDouble(uint16_t memaddr, double value); void write(uint16_t memaddr, uint8_t * obj, uint16_t size); uint8_t read8(uint16_t memaddr); uint16_t read16(uint16_t memaddr); uint32_t read32(uint16_t memaddr); + float readFloat(uint16_t memaddr); + double readDouble(uint16_t memaddr); void read(uint16_t memaddr, uint8_t * obj, uint16_t size); template uint16_t writeObject(uint16_t memaddr, T &obj) @@ -112,11 +116,15 @@ public: void write8(uint32_t memaddr, uint8_t value); void write16(uint32_t memaddr, uint16_t value); void write32(uint32_t memaddr, uint32_t value); + void writeFloat(uint32_t memaddr, float value); + void writeDouble(uint32_t memaddr, double value); void write(uint32_t memaddr, uint8_t * obj, uint16_t size); uint8_t read8(uint32_t memaddr); uint16_t read16(uint32_t memaddr); uint32_t read32(uint32_t memaddr); + float readFloat(uint32_t memaddr); + double readDouble(uint32_t memaddr); void read(uint32_t memaddr, uint8_t * obj, uint16_t size); template uint32_t writeObject(uint32_t memaddr, T &obj); diff --git a/libraries/FRAM_I2C/LICENSE b/libraries/FRAM_I2C/LICENSE index 2ede7a75..c3b72e98 100644 --- a/libraries/FRAM_I2C/LICENSE +++ b/libraries/FRAM_I2C/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2018-2022 Rob Tillaart +Copyright (c) 2018-2023 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/libraries/FRAM_I2C/README.md b/libraries/FRAM_I2C/README.md index d1d8f6bd..46cea6dd 100644 --- a/libraries/FRAM_I2C/README.md +++ b/libraries/FRAM_I2C/README.md @@ -70,10 +70,16 @@ In the **FRAM32** class these functions have an **uin32_t memaddr**. - **void write8(uint16_t memaddr, uint8_t value)** uint8_t - **void write16(uint16_t memaddr, uint16_t value)** uint16_t - **void write32(uint16_t memaddr, uint32_t value)** uint32_t +- **void writeFloat(uint16_t memaddr, float value)** float (since 0.4.3) +- **void writeDouble(uint16_t memaddr, double value)** double (since 0.4.3) +For board that have 8 byte double. - **void write(uint16_t memaddr, uint8_t \* obj, uint16_t size)** other types / sizes. - **uint8_t read8(uint16_t memaddr)** - **uint16_t read16(uint16_t memaddr)** - **uint32_t read32(uint16_t memaddr)** +- **float readFloat(uint16_t memaddr)** (since 0.4.3) +- **double readDouble(uint16_t memaddr)** (since 0.4.3) +For board that have 8 byte double. - **void read(uint16_t memaddr, uint8_t uint8_t \* obj, uint16_t size)** One needs to allocate memory as the function won't. @@ -186,7 +192,7 @@ The FRAM_ringbuffer.ino examples shows how the class can be used. - test more types of FRAM - **getSize()** scanning FRAM like EEPROM library? - remember last written address? why? -- fill power usage table +- fill power usage table (documentation) ### wont diff --git a/libraries/FRAM_I2C/keywords.txt b/libraries/FRAM_I2C/keywords.txt index e0e3deb7..fc79f8ad 100644 --- a/libraries/FRAM_I2C/keywords.txt +++ b/libraries/FRAM_I2C/keywords.txt @@ -13,11 +13,15 @@ isConnected KEYWORD2 write8 KEYWORD2 write16 KEYWORD2 write32 KEYWORD2 +writeFloat KEYWORD2 +writeDouble KEYWORD2 write KEYWORD2 read8 KEYWORD2 read16 KEYWORD2 read32 KEYWORD2 +readFloat KEYWORD2 +readDouble KEYWORD2 read KEYWORD2 writeObject KEYWORD2 diff --git a/libraries/FRAM_I2C/library.json b/libraries/FRAM_I2C/library.json index fba40ddb..3bfba771 100644 --- a/libraries/FRAM_I2C/library.json +++ b/libraries/FRAM_I2C/library.json @@ -15,7 +15,7 @@ "type": "git", "url": "https://github.com/RobTillaart/FRAM_I2C.git" }, - "version": "0.4.2", + "version": "0.4.3", "license": "MIT", "frameworks": "arduino", "platforms": "*", diff --git a/libraries/FRAM_I2C/library.properties b/libraries/FRAM_I2C/library.properties index 3f3b3258..cf701280 100644 --- a/libraries/FRAM_I2C/library.properties +++ b/libraries/FRAM_I2C/library.properties @@ -1,5 +1,5 @@ name=FRAM_I2C -version=0.4.2 +version=0.4.3 author=Rob Tillaart maintainer=Rob Tillaart sentence=Arduino library for I2C FRAM.