mirror of
https://github.com/RobTillaart/Arduino.git
synced 2024-09-19 16:46:11 -04:00
0.4.3 FRAM_I2C
This commit is contained in:
parent
292707a95c
commit
cc70071cc3
@ -25,4 +25,5 @@ compile:
|
||||
- esp8266
|
||||
# - mega2560
|
||||
- rpipico
|
||||
- nano_every
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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 <class T> 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 <class T> uint32_t writeObject(uint32_t memaddr, T &obj);
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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": "*",
|
||||
|
@ -1,5 +1,5 @@
|
||||
name=FRAM_I2C
|
||||
version=0.4.2
|
||||
version=0.4.3
|
||||
author=Rob Tillaart <rob.tillaart@gmail.com>
|
||||
maintainer=Rob Tillaart <rob.tillaart@gmail.com>
|
||||
sentence=Arduino library for I2C FRAM.
|
||||
|
Loading…
Reference in New Issue
Block a user