EEPROM

 

Want to write a value so that you can access it if the microchip loses power and restarts? Write it to EEPROM!

The Attiny 24/44/84 family have 128/256/512 Bytes of In-System Programmable EEPROM, so it’s not enormous…

The avr/eeprom.h code is from avr-libc, a Standard C library for AVR-GCC. Here’s a link to the library:(https://www.nongnu.org/avr-libc/user-manual/group__avr__eeprom.html)

The coolest thing about this code is seeing what you have written to EEPROM in AVR Studio’s EEPROM viewer when you’re in Debug Mode.


/*
 * Attiny84 EEPROM.c
 *
 * Created: 2/5/2019 2:18:28 PM
 * Author : FablabDigiscope
 */ 

#include <avr/io.h>
#include <avr/eeprom.h>

int main(void)
{

    while (1) 
    {	
		uint8_t hello[] = "Wow this is really cool!"; 
		eeprom_write_block (hello, (void*)0x00AA, sizeof (hello)); // structure: void eeprom_write_block (const void *__src, void *__dst, size_t __n)
    }
}

Atmel’s instructional videos on EEPROM on Youtube were helpful for this code.