Difference between revisions of "Component: EEPROM (EEPROM)"
Line 17: | Line 17: | ||
==Component Source Code== | ==Component Source Code== | ||
− | Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/ | + | Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_temp/EEPROM.fcfx FC_Comp_Source_temp/EEPROM.fcfx] |
− | Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/ | + | Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_temp/EEPROM.fcfx FC_Comp_Source_temp/EEPROM.fcfx] |
==Detailed description== | ==Detailed description== | ||
Line 93: | Line 93: | ||
Example showing how to store and retrieve strings to and from the EEPROM memory. | Example showing how to store and retrieve strings to and from the EEPROM memory. | ||
{{Fcfile|StringEE.fcfx|EEStrings}} | {{Fcfile|StringEE.fcfx|EEStrings}} | ||
+ | |||
+ | |||
Line 100: | Line 102: | ||
==Macro reference== | ==Macro reference== | ||
− | === | + | ===Read=== |
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Read''' |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Reads a packet of bits from the EEPROM The number of bits read is 8 or 16, depending on the platform |
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
− | | width="90%" | | + | | width="90%" | Address |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | The address, in elements, to read the data from |
|- | |- | ||
− | + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
− | === | + | ===ReadByte=== |
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadByte''' |
|- | |- | ||
− | | colspan="2" | Reads a | + | | colspan="2" | Reads a 8-bit byte value starting from the specified address. A 8-bit byte will consume 1 byte which will be 1 locations on an 8-bit device or half a location on a 16-bit device. |
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
− | | width="90%" | | + | | width="90%" | ByteAddress |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Byte address, EEADDR on 8-bit device or EEADDR/2 on a 16-bit device |
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL | | width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL | ||
Line 148: | Line 140: | ||
| colspan="2" | 0=LSB First, 1=MSB First | | colspan="2" | 0=LSB First, 1=MSB First | ||
|- | |- | ||
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE |
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
Line 177: | Line 169: | ||
− | === | + | ===ReadInt=== |
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadInt''' |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Reads a 16-bit int value starting from the specified address. A 16-bit int will consume 2 bytes which will be 2 locations on an 8-bit device or 1 location on a 16-bit device. |
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
− | | width="90%" | | + | | width="90%" | StartAddress |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Initial EE location to start reading |
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9- | + | | width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL |
− | | width="90%" | | + | | width="90%" | MSBFirst |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | 0=LSB First, 1=MSB First |
|- | |- | ||
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT |
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
− | === | + | ===ReadLong=== |
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadLong''' |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Reads a 32-bit long value starting from the specified address. A 32-bit long will consume 4 bytes which will be 4 locations on an 8-bit device or 2 locations on a 16-bit device. |
|- | |- | ||
|- | |- | ||
Line 214: | Line 206: | ||
|- | |- | ||
| colspan="2" | Initial EE location to start reading | | colspan="2" | Initial EE location to start reading | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL | | width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL | ||
Line 225: | Line 212: | ||
| colspan="2" | 0=LSB First, 1=MSB First | | colspan="2" | 0=LSB First, 1=MSB First | ||
|- | |- | ||
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u32-icon.png]] - ULONG |
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
Line 254: | Line 241: | ||
− | === | + | ===Write=== |
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Write''' |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Writes a packet of bits from the EEPROM The number of bits written is 8 or 16, depending on the platform |
|- | |- | ||
|- | |- | ||
Line 266: | Line 253: | ||
| width="90%" | Address | | width="90%" | Address | ||
|- | |- | ||
− | | colspan="2" | The address, in elements, to | + | | colspan="2" | The address, in elements, to write the data to |
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
+ | | width="90%" | Value | ||
+ | |- | ||
+ | | colspan="2" | The 8 or 16 bit value to store in EEPROM | ||
|- | |- | ||
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID |
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
− | === | + | ===WriteByte=== |
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WriteByte''' |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Writes a 8-bit byte value to the specified address. A 8-bit byte will consume 1 bytes which will be 1 locations on an 8-bit device or half a location on a 16-bit device. |
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
− | | width="90%" | | + | | width="90%" | ByteAddress |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Byte address, EEADDR on 8-bit device or EEADDR/2 on a 16-bit device |
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9- | + | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE |
− | | width="90%" | | + | | width="90%" | Value |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Floating point value to write |
|- | |- | ||
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID |
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
− | === | + | ===WriteFloat=== |
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WriteFloat''' |
|- | |- | ||
− | | colspan="2" | Writes a | + | | colspan="2" | Writes a 32-bit float value starting at the specified address. A 32-bit float will consume 4 bytes which will be 4 locations on an 8-bit device or 2 locations on a 16-bit device. |
|- | |- | ||
|- | |- | ||
Line 309: | Line 301: | ||
| width="90%" | StartAddress | | width="90%" | StartAddress | ||
|- | |- | ||
− | | colspan="2" | EE | + | | colspan="2" | Initial EE location to start reading |
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9- | + | | width="10%" align="center" | [[File:Fc9-f32-icon.png]] - FLOAT |
− | | width="90%" | | + | | width="90%" | Value |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Floating point value to write |
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9- | + | | width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL |
− | | width="90%" | | + | | width="90%" | MSBFirst |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | 0=LSB First, 1=MSB First |
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
Line 326: | Line 318: | ||
− | === | + | ===WriteInt=== |
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WriteInt''' |
|- | |- | ||
− | | colspan="2" | Writes a | + | | colspan="2" | Writes a 16-bit int value starting at the specified address. A 16-bit int will consume 2 bytes which will be 2 locations on an 8-bit device or 1 location on a 16-bit device. |
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
− | | width="90%" | | + | | width="90%" | StartAddress |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Initial EE location to start reading |
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
| width="90%" | Value | | width="90%" | Value | ||
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Floating point value to write |
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL | ||
+ | | width="90%" | MSBFirst | ||
+ | |- | ||
+ | | colspan="2" | 0=LSB First, 1=MSB First | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
Line 350: | Line 347: | ||
− | === | + | ===WriteLong=== |
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WriteLong''' |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Writes a 32-bit long value starting at the specified address. A 32-bit long will consume 4 bytes which will be 4 locations on an 8-bit device or 2 locations on a 16-bit device. |
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
− | | width="90%" | | + | | width="90%" | StartAddress |
+ | |- | ||
+ | | colspan="2" | Initial EE location to start reading | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u32-icon.png]] - ULONG | ||
+ | | width="90%" | Value | ||
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Floating point value to write |
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL | | width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL | ||
Line 369: | Line 371: | ||
| colspan="2" | 0=LSB First, 1=MSB First | | colspan="2" | 0=LSB First, 1=MSB First | ||
|- | |- | ||
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID |
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
− | === | + | ===WriteString=== |
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WriteString''' |
|- | |- | ||
− | | colspan="2" | Writes a | + | | colspan="2" | Writes a string of data to the EE memory starting at the specified address. 8-bit EE memory stores a character into each memory location. 16-bit EE memory stores two characters into each memory location. |
|- | |- | ||
|- | |- | ||
Line 386: | Line 388: | ||
| width="90%" | StartAddress | | width="90%" | StartAddress | ||
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | EE Address of the first character in the string |
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9- | + | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE |
− | | width="90%" | | + | | width="90%" | MaxChars |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | The maximum number of characters to try and read plus null termination |
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9- | + | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING |
− | | width="90%" | | + | | width="90%" | DataString |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | |
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID |
Revision as of 12:00, 3 February 2023
Author | Matrix Ltd |
Version | 1.2 |
Category | EEPROM |
Contents
EEPROM component
A means of reading data from and writing data to the EEPROM memory onboard the microcontroller. Fully functional with simulation but the target microcontroller must have EEPROM memory available to allow compilation to work.
Component Source Code
Please click here to download the component source project: FC_Comp_Source_temp/EEPROM.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_temp/EEPROM.fcfx
Detailed description
No detailed description exists yet for this component
Examples
The Console window can be used to show the contents of EE memory during simulation.
Read and Write Bytes
Reads a value from location 0 in the EEPROM and writes back the value incremented by one, the values are displayed on to a LCD.
Starting and stopping the simulation or resetting the microcontroller will allow the program to resume counting from where it left off as opposed to a standard RAM based variable which would reset to an undetermined value. EEPROM
Read and Write Ints
Reads a value from locations 0,1 in the EEPROM and writes back the value incremented by one, the values are displayed on to a LCD.
Starting and stopping the simulation or resetting the microcontroller will allow the program to resume counting from where it left off as opposed to a standard RAM based variable which would reset to an undetermined value. EEPROM_INT
String variables in EE Memory
Example showing how to store and retrieve strings to and from the EEPROM memory. EEStrings
Macro reference
Read
Read | |
Reads a packet of bits from the EEPROM The number of bits read is 8 or 16, depending on the platform | |
- UINT | Address |
The address, in elements, to read the data from | |
- UINT | Return |
ReadByte
ReadFloat
ReadInt
ReadLong
ReadString
Write
WriteByte
WriteFloat
WriteInt
WriteLong
WriteString