EEPROM Library

EEPROM data memory is available with a number of AVR family. The mikroBasic PRO for AVR includes a library for comfortable work with MCU's internal EEPROM.

  Important : EEPROM Library functions implementation is MCU dependent, consult the appropriate MCU datasheet for details about available EEPROM size and address range.

Library Routines

EEPROM_Read

Prototype

sub function EEPROM_Read(dim address as word) as byte

Returns

Byte from the specified address.

Description

Reads data from specified address.

Parameters :

  • address: address of the EEPROM memory location to be read.

Requires

Nothing.

Example
dim eeAddr as word
temp as byte
...
eeAddr = 2
temp = EEPROM_Read(eeAddr)

EEPROM_Write

Prototype

sub procedure EEPROM_Write(dim address as word, dim wrdata as byte)

Returns

Nothing.

Description

Writes wrdata to specified address.

Parameters :

  • address: address of the EEPROM memory location to be written.
  • wrdata: data to be written.

  Note : Specified memory location will be erased before writing starts.
Requires

Nothing.

Example
dim eeWrite as byte
    wrAddr as word
...
eeWrite = 0x02
wrAddr = 0xAA
EEPROM_Write(wrAddr, eeWrite)

Library Example

This example demonstrates using the EEPROM Library with ATmega16 MCU.

First, some data is written to EEPROM in byte and block mode; then the data is read from the same locations and displayed on PORTA, PORTB and PORTC.

Copy Code To ClipboardCopy Code To Clipboard
program EEPROM

dim counter as byte                              ' loop variable

main:
  DDRA = 0xFF
  DDRB = 0xFF
  DDRC = 0xFF

  for counter = 0 to 31                          ' Fill data buffer
   EEPROM_Write(0x100 + counter, counter)        ' Write data to address 0x100+counter
  next counter

  EEPROM_Write(0x02,0xAA)                        ' Write some data at address 2
  EEPROM_Write(0x150,0x55)                       ' Write some data at address 0x150

  Delay_ms(1000)                                 ' Blink PORTA and PORTB diodes
  PORTA = 0xFF                                   '   to indicate reading start
  PORTB = 0xFF
  Delay_ms(1000)
  PORTA = 0x00
  PORTB = 0x00
  Delay_ms(1000)

  PORTA = EEPROM_Read(0x02)                      ' Read data from address 2 and display it on PORT0
  PORTB = EEPROM_Read(0x150)                     ' Read data from address 0x150 and display it on PORT1

  Delay_ms(1000)

  for counter = 0 to 31                          ' Read 32 bytes block from address 0x100
     PORTC = EEPROM_Read(0x100+counter)          '   and display data on PORT2
     Delay_ms(100)
  next counter
end.
Copyright (c) 2002-2012 mikroElektronika. All rights reserved.
What do you think about this topic ? Send us feedback!
Want more examples and libraries? 
Find them on LibStock - A place for the code