\hypertarget{group__avr__eeprom}{}\doxysubsection{$<$avr/eeprom.h$>$\+: E\+E\+P\+R\+OM handling}
\label{group__avr__eeprom}\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{group__avr__eeprom_ga79a42ec6c6c8bbbe6e34ed57a52aac59}{E\+E\+M\+EM}}~\mbox{\hyperlink{group__avr__watchdog_gadaa6dd28b5d08df35e49b1248d7e5fb0}{\+\_\+\+\_\+attribute\+\_\+\+\_\+}}((section(\char`\"{}.eeprom\char`\"{})))
\item 
\#define \mbox{\hyperlink{group__avr__eeprom_ga7ccd65b76bb9ed5ee03855779bae28de}{eeprom\+\_\+is\+\_\+ready}}()
\item 
\#define \mbox{\hyperlink{group__avr__eeprom_ga44c64ebb425fcb34b8d4dc19c4079869}{eeprom\+\_\+busy\+\_\+wait}}()~do \{\} while (!\mbox{\hyperlink{group__avr__eeprom_ga7ccd65b76bb9ed5ee03855779bae28de}{eeprom\+\_\+is\+\_\+ready}}())
\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} \mbox{\hyperlink{group__avr__eeprom_ga2d4ee8b92a592c764785fb5e4af5662b}{eeprom\+\_\+read\+\_\+byte}} (const \mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} $\ast$\+\_\+\+\_\+p) \+\_\+\+\_\+\+A\+T\+T\+R\+\_\+\+P\+U\+R\+E\+\_\+\+\_\+
\item 
\mbox{\hyperlink{group__avr__stdint_ga1f1825b69244eb3ad2c7165ddc99c956}{uint16\+\_\+t}} \mbox{\hyperlink{group__avr__eeprom_gabeef2e14398b47268f88462b3d7738dc}{eeprom\+\_\+read\+\_\+word}} (const \mbox{\hyperlink{group__avr__stdint_ga1f1825b69244eb3ad2c7165ddc99c956}{uint16\+\_\+t}} $\ast$\+\_\+\+\_\+p) \+\_\+\+\_\+\+A\+T\+T\+R\+\_\+\+P\+U\+R\+E\+\_\+\+\_\+
\item 
\mbox{\hyperlink{group__avr__stdint_ga33594304e786b158f3fb30289278f5af}{uint32\+\_\+t}} \mbox{\hyperlink{group__avr__eeprom_ga88df934c94c037b10ebeb337a6883a74}{eeprom\+\_\+read\+\_\+dword}} (const \mbox{\hyperlink{group__avr__stdint_ga33594304e786b158f3fb30289278f5af}{uint32\+\_\+t}} $\ast$\+\_\+\+\_\+p) \+\_\+\+\_\+\+A\+T\+T\+R\+\_\+\+P\+U\+R\+E\+\_\+\+\_\+
\item 
float \mbox{\hyperlink{group__avr__eeprom_ga88da5e9bf80b4acded6018314baab6cd}{eeprom\+\_\+read\+\_\+float}} (const float $\ast$\+\_\+\+\_\+p) \+\_\+\+\_\+\+A\+T\+T\+R\+\_\+\+P\+U\+R\+E\+\_\+\+\_\+
\item 
void \mbox{\hyperlink{group__avr__eeprom_ga0ebd0e867b6f4a03d053801d3508f8de}{eeprom\+\_\+read\+\_\+block}} (void $\ast$\+\_\+\+\_\+dst, const void $\ast$\+\_\+\+\_\+src, size\+\_\+t \+\_\+\+\_\+n)
\item 
void \mbox{\hyperlink{group__avr__eeprom_ga682e0b2ca0badd47e1e30e61617e1361}{eeprom\+\_\+write\+\_\+byte}} (\mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} $\ast$\+\_\+\+\_\+p, \mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} \+\_\+\+\_\+value)
\item 
void \mbox{\hyperlink{group__avr__eeprom_ga38e4426e45512adb5e33bf8eff20ab41}{eeprom\+\_\+write\+\_\+word}} (\mbox{\hyperlink{group__avr__stdint_ga1f1825b69244eb3ad2c7165ddc99c956}{uint16\+\_\+t}} $\ast$\+\_\+\+\_\+p, \mbox{\hyperlink{group__avr__stdint_ga1f1825b69244eb3ad2c7165ddc99c956}{uint16\+\_\+t}} \+\_\+\+\_\+value)
\item 
void \mbox{\hyperlink{group__avr__eeprom_ga012c7fa61d9695b7f0f5187d2560e598}{eeprom\+\_\+write\+\_\+dword}} (\mbox{\hyperlink{group__avr__stdint_ga33594304e786b158f3fb30289278f5af}{uint32\+\_\+t}} $\ast$\+\_\+\+\_\+p, \mbox{\hyperlink{group__avr__stdint_ga33594304e786b158f3fb30289278f5af}{uint32\+\_\+t}} \+\_\+\+\_\+value)
\item 
void \mbox{\hyperlink{group__avr__eeprom_gac738db5e12a0369d332ca43563755095}{eeprom\+\_\+write\+\_\+float}} (float $\ast$\+\_\+\+\_\+p, float \+\_\+\+\_\+value)
\item 
void \mbox{\hyperlink{group__avr__eeprom_gac5c2be42eb170be7a26fe8b7cce4bc4d}{eeprom\+\_\+write\+\_\+block}} (const void $\ast$\+\_\+\+\_\+src, void $\ast$\+\_\+\+\_\+dst, size\+\_\+t \+\_\+\+\_\+n)
\item 
void \mbox{\hyperlink{group__avr__eeprom_ga63aee2719099e8435e8584d4b3e51991}{eeprom\+\_\+update\+\_\+byte}} (\mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} $\ast$\+\_\+\+\_\+p, \mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} \+\_\+\+\_\+value)
\item 
void \mbox{\hyperlink{group__avr__eeprom_ga131cff4e1ae5fcdf5685cab524ea4553}{eeprom\+\_\+update\+\_\+word}} (\mbox{\hyperlink{group__avr__stdint_ga1f1825b69244eb3ad2c7165ddc99c956}{uint16\+\_\+t}} $\ast$\+\_\+\+\_\+p, \mbox{\hyperlink{group__avr__stdint_ga1f1825b69244eb3ad2c7165ddc99c956}{uint16\+\_\+t}} \+\_\+\+\_\+value)
\item 
void \mbox{\hyperlink{group__avr__eeprom_gaab79c4b2b5e8159d5f37d26d11d3f954}{eeprom\+\_\+update\+\_\+dword}} (\mbox{\hyperlink{group__avr__stdint_ga33594304e786b158f3fb30289278f5af}{uint32\+\_\+t}} $\ast$\+\_\+\+\_\+p, \mbox{\hyperlink{group__avr__stdint_ga33594304e786b158f3fb30289278f5af}{uint32\+\_\+t}} \+\_\+\+\_\+value)
\item 
void \mbox{\hyperlink{group__avr__eeprom_ga106a2e703b12cad4d35380b1a69ac586}{eeprom\+\_\+update\+\_\+float}} (float $\ast$\+\_\+\+\_\+p, float \+\_\+\+\_\+value)
\item 
void \mbox{\hyperlink{group__avr__eeprom_gaa42f9b445115c9bbbeca19dab6f7fba9}{eeprom\+\_\+update\+\_\+block}} (const void $\ast$\+\_\+\+\_\+src, void $\ast$\+\_\+\+\_\+dst, size\+\_\+t \+\_\+\+\_\+n)
\end{DoxyCompactItemize}
\doxysubsubsection*{I\+AR C compatibility defines}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{group__avr__eeprom_gae63647a896a731935077dbeb0a1b52ef}{\+\_\+\+E\+E\+P\+UT}}(addr,  val)~\mbox{\hyperlink{group__avr__eeprom_ga682e0b2ca0badd47e1e30e61617e1361}{eeprom\+\_\+write\+\_\+byte}} ((\mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} $\ast$)(addr), (\mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}})(val))
\item 
\#define \mbox{\hyperlink{group__avr__eeprom_gae436d1b201970ad3836f663982d81dbf}{\+\_\+\+\_\+\+E\+E\+P\+UT}}(addr,  val)~\mbox{\hyperlink{group__avr__eeprom_ga682e0b2ca0badd47e1e30e61617e1361}{eeprom\+\_\+write\+\_\+byte}} ((\mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} $\ast$)(addr), (\mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}})(val))
\item 
\#define \mbox{\hyperlink{group__avr__eeprom_ga98c859a256541fe119e47ac4fdfd1ebd}{\+\_\+\+E\+E\+G\+ET}}(var,  addr)~(var) = \mbox{\hyperlink{group__avr__eeprom_ga2d4ee8b92a592c764785fb5e4af5662b}{eeprom\+\_\+read\+\_\+byte}} ((const \mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} $\ast$)(addr))
\item 
\#define \mbox{\hyperlink{group__avr__eeprom_gac76dc1465b220dfcdd9aa7300a5cfe6c}{\+\_\+\+\_\+\+E\+E\+G\+ET}}(var,  addr)~(var) = \mbox{\hyperlink{group__avr__eeprom_ga2d4ee8b92a592c764785fb5e4af5662b}{eeprom\+\_\+read\+\_\+byte}} ((const \mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} $\ast$)(addr))
\end{DoxyCompactItemize}


\doxysubsubsection{Detailed Description}

\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#include <avr/eeprom.h>} }
\end{DoxyCode}


This header file declares the interface to some simple library routines suitable for handling the data E\+E\+P\+R\+OM contained in the A\+VR microcontrollers. The implementation uses a simple polled mode interface. Applications that require interrupt-\/controlled E\+E\+P\+R\+OM access to ensure that no time will be wasted in spinloops will have to deploy their own implementation.

\begin{DoxyParagraph}{Notes\+:}

\end{DoxyParagraph}

\begin{DoxyItemize}
\item In addition to the write functions there is a set of update ones. This functions read each byte first and skip the burning if the old value is the same with new. The scaning direction is from high address to low, to obtain quick return in common cases.
\item All of the read/write functions first make sure the E\+E\+P\+R\+OM is ready to be accessed. Since this may cause long delays if a write operation is still pending, time-\/critical applications should first poll the E\+E\+P\+R\+OM e. g. using \mbox{\hyperlink{group__avr__eeprom_ga7ccd65b76bb9ed5ee03855779bae28de}{eeprom\+\_\+is\+\_\+ready()}} before attempting any actual I/O. But this functions are not wait until S\+E\+L\+F\+P\+R\+G\+EN in S\+P\+M\+C\+SR becomes zero. Do this manually, if your softwate contains the Flash burning.
\item As these functions modify IO registers, they are known to be non-\/reentrant. If any of these functions are used from both, standard and interrupt context, the applications must ensure proper protection (e.\+g. by disabling interrupts before accessing them).
\item All write functions force erase\+\_\+and\+\_\+write programming mode.
\item For Xmega the E\+E\+P\+R\+OM start address is 0, like other architectures. The reading functions add the 0x2000 value to use E\+E\+P\+R\+OM mapping into data space. 
\end{DoxyItemize}

\doxysubsubsection{Macro Definition Documentation}
\mbox{\Hypertarget{group__avr__eeprom_gac76dc1465b220dfcdd9aa7300a5cfe6c}\label{group__avr__eeprom_gac76dc1465b220dfcdd9aa7300a5cfe6c}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!\_\_EEGET@{\_\_EEGET}}
\index{\_\_EEGET@{\_\_EEGET}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{\_\_EEGET}{\_\_EEGET}}
{\footnotesize\ttfamily \#define \+\_\+\+\_\+\+E\+E\+G\+ET(\begin{DoxyParamCaption}\item[{}]{var,  }\item[{}]{addr }\end{DoxyParamCaption})~(var) = \mbox{\hyperlink{group__avr__eeprom_ga2d4ee8b92a592c764785fb5e4af5662b}{eeprom\+\_\+read\+\_\+byte}} ((const \mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} $\ast$)(addr))}

Read a byte from E\+E\+P\+R\+OM. Compatibility define for I\+AR C. \mbox{\Hypertarget{group__avr__eeprom_gae436d1b201970ad3836f663982d81dbf}\label{group__avr__eeprom_gae436d1b201970ad3836f663982d81dbf}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!\_\_EEPUT@{\_\_EEPUT}}
\index{\_\_EEPUT@{\_\_EEPUT}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{\_\_EEPUT}{\_\_EEPUT}}
{\footnotesize\ttfamily \#define \+\_\+\+\_\+\+E\+E\+P\+UT(\begin{DoxyParamCaption}\item[{}]{addr,  }\item[{}]{val }\end{DoxyParamCaption})~\mbox{\hyperlink{group__avr__eeprom_ga682e0b2ca0badd47e1e30e61617e1361}{eeprom\+\_\+write\+\_\+byte}} ((\mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} $\ast$)(addr), (\mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}})(val))}

Write a byte to E\+E\+P\+R\+OM. Compatibility define for I\+AR C. \mbox{\Hypertarget{group__avr__eeprom_ga98c859a256541fe119e47ac4fdfd1ebd}\label{group__avr__eeprom_ga98c859a256541fe119e47ac4fdfd1ebd}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!\_EEGET@{\_EEGET}}
\index{\_EEGET@{\_EEGET}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{\_EEGET}{\_EEGET}}
{\footnotesize\ttfamily \#define \+\_\+\+E\+E\+G\+ET(\begin{DoxyParamCaption}\item[{}]{var,  }\item[{}]{addr }\end{DoxyParamCaption})~(var) = \mbox{\hyperlink{group__avr__eeprom_ga2d4ee8b92a592c764785fb5e4af5662b}{eeprom\+\_\+read\+\_\+byte}} ((const \mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} $\ast$)(addr))}

Read a byte from E\+E\+P\+R\+OM. Compatibility define for I\+AR C. \mbox{\Hypertarget{group__avr__eeprom_gae63647a896a731935077dbeb0a1b52ef}\label{group__avr__eeprom_gae63647a896a731935077dbeb0a1b52ef}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!\_EEPUT@{\_EEPUT}}
\index{\_EEPUT@{\_EEPUT}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{\_EEPUT}{\_EEPUT}}
{\footnotesize\ttfamily \#define \+\_\+\+E\+E\+P\+UT(\begin{DoxyParamCaption}\item[{}]{addr,  }\item[{}]{val }\end{DoxyParamCaption})~\mbox{\hyperlink{group__avr__eeprom_ga682e0b2ca0badd47e1e30e61617e1361}{eeprom\+\_\+write\+\_\+byte}} ((\mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} $\ast$)(addr), (\mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}})(val))}

Write a byte to E\+E\+P\+R\+OM. Compatibility define for I\+AR C. \mbox{\Hypertarget{group__avr__eeprom_ga79a42ec6c6c8bbbe6e34ed57a52aac59}\label{group__avr__eeprom_ga79a42ec6c6c8bbbe6e34ed57a52aac59}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!EEMEM@{EEMEM}}
\index{EEMEM@{EEMEM}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{EEMEM}{EEMEM}}
{\footnotesize\ttfamily \#define E\+E\+M\+EM~\mbox{\hyperlink{group__avr__watchdog_gadaa6dd28b5d08df35e49b1248d7e5fb0}{\+\_\+\+\_\+attribute\+\_\+\+\_\+}}((section(\char`\"{}.eeprom\char`\"{})))}

Attribute expression causing a variable to be allocated within the .eeprom section. \mbox{\Hypertarget{group__avr__eeprom_ga44c64ebb425fcb34b8d4dc19c4079869}\label{group__avr__eeprom_ga44c64ebb425fcb34b8d4dc19c4079869}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!eeprom\_busy\_wait@{eeprom\_busy\_wait}}
\index{eeprom\_busy\_wait@{eeprom\_busy\_wait}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{eeprom\_busy\_wait}{eeprom\_busy\_wait}}
{\footnotesize\ttfamily \#define eeprom\+\_\+busy\+\_\+wait(\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})~do \{\} while (!\mbox{\hyperlink{group__avr__eeprom_ga7ccd65b76bb9ed5ee03855779bae28de}{eeprom\+\_\+is\+\_\+ready}}())}

Loops until the eeprom is no longer busy. \begin{DoxyReturn}{Returns}
Nothing. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__avr__eeprom_ga7ccd65b76bb9ed5ee03855779bae28de}\label{group__avr__eeprom_ga7ccd65b76bb9ed5ee03855779bae28de}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!eeprom\_is\_ready@{eeprom\_is\_ready}}
\index{eeprom\_is\_ready@{eeprom\_is\_ready}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{eeprom\_is\_ready}{eeprom\_is\_ready}}
{\footnotesize\ttfamily \#define eeprom\+\_\+is\+\_\+ready(\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

\begin{DoxyReturn}{Returns}
1 if E\+E\+P\+R\+OM is ready for a new read/write operation, 0 if not. 
\end{DoxyReturn}


\doxysubsubsection{Function Documentation}
\mbox{\Hypertarget{group__avr__eeprom_ga0ebd0e867b6f4a03d053801d3508f8de}\label{group__avr__eeprom_ga0ebd0e867b6f4a03d053801d3508f8de}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!eeprom\_read\_block@{eeprom\_read\_block}}
\index{eeprom\_read\_block@{eeprom\_read\_block}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{eeprom\_read\_block()}{eeprom\_read\_block()}}
{\footnotesize\ttfamily void eeprom\+\_\+read\+\_\+block (\begin{DoxyParamCaption}\item[{void $\ast$}]{\+\_\+\+\_\+dst,  }\item[{const void $\ast$}]{\+\_\+\+\_\+src,  }\item[{size\+\_\+t}]{\+\_\+\+\_\+n }\end{DoxyParamCaption})}

Read a block of {\itshape \+\_\+\+\_\+n} bytes from E\+E\+P\+R\+OM address {\itshape \+\_\+\+\_\+src} to S\+R\+AM {\itshape \+\_\+\+\_\+dst}. \mbox{\Hypertarget{group__avr__eeprom_ga2d4ee8b92a592c764785fb5e4af5662b}\label{group__avr__eeprom_ga2d4ee8b92a592c764785fb5e4af5662b}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!eeprom\_read\_byte@{eeprom\_read\_byte}}
\index{eeprom\_read\_byte@{eeprom\_read\_byte}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{eeprom\_read\_byte()}{eeprom\_read\_byte()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} eeprom\+\_\+read\+\_\+byte (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} $\ast$}]{\+\_\+\+\_\+p }\end{DoxyParamCaption})}

Read one byte from E\+E\+P\+R\+OM address {\itshape \+\_\+\+\_\+p}. \mbox{\Hypertarget{group__avr__eeprom_ga88df934c94c037b10ebeb337a6883a74}\label{group__avr__eeprom_ga88df934c94c037b10ebeb337a6883a74}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!eeprom\_read\_dword@{eeprom\_read\_dword}}
\index{eeprom\_read\_dword@{eeprom\_read\_dword}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{eeprom\_read\_dword()}{eeprom\_read\_dword()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__avr__stdint_ga33594304e786b158f3fb30289278f5af}{uint32\+\_\+t}} eeprom\+\_\+read\+\_\+dword (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__avr__stdint_ga33594304e786b158f3fb30289278f5af}{uint32\+\_\+t}} $\ast$}]{\+\_\+\+\_\+p }\end{DoxyParamCaption})}

Read one 32-\/bit double word (little endian) from E\+E\+P\+R\+OM address {\itshape \+\_\+\+\_\+p}. \mbox{\Hypertarget{group__avr__eeprom_ga88da5e9bf80b4acded6018314baab6cd}\label{group__avr__eeprom_ga88da5e9bf80b4acded6018314baab6cd}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!eeprom\_read\_float@{eeprom\_read\_float}}
\index{eeprom\_read\_float@{eeprom\_read\_float}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{eeprom\_read\_float()}{eeprom\_read\_float()}}
{\footnotesize\ttfamily float eeprom\+\_\+read\+\_\+float (\begin{DoxyParamCaption}\item[{const float $\ast$}]{\+\_\+\+\_\+p }\end{DoxyParamCaption})}

Read one float value (little endian) from E\+E\+P\+R\+OM address {\itshape \+\_\+\+\_\+p}. \mbox{\Hypertarget{group__avr__eeprom_gabeef2e14398b47268f88462b3d7738dc}\label{group__avr__eeprom_gabeef2e14398b47268f88462b3d7738dc}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!eeprom\_read\_word@{eeprom\_read\_word}}
\index{eeprom\_read\_word@{eeprom\_read\_word}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{eeprom\_read\_word()}{eeprom\_read\_word()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__avr__stdint_ga1f1825b69244eb3ad2c7165ddc99c956}{uint16\+\_\+t}} eeprom\+\_\+read\+\_\+word (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__avr__stdint_ga1f1825b69244eb3ad2c7165ddc99c956}{uint16\+\_\+t}} $\ast$}]{\+\_\+\+\_\+p }\end{DoxyParamCaption})}

Read one 16-\/bit word (little endian) from E\+E\+P\+R\+OM address {\itshape \+\_\+\+\_\+p}. \mbox{\Hypertarget{group__avr__eeprom_gaa42f9b445115c9bbbeca19dab6f7fba9}\label{group__avr__eeprom_gaa42f9b445115c9bbbeca19dab6f7fba9}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!eeprom\_update\_block@{eeprom\_update\_block}}
\index{eeprom\_update\_block@{eeprom\_update\_block}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{eeprom\_update\_block()}{eeprom\_update\_block()}}
{\footnotesize\ttfamily void eeprom\+\_\+update\+\_\+block (\begin{DoxyParamCaption}\item[{const void $\ast$}]{\+\_\+\+\_\+src,  }\item[{void $\ast$}]{\+\_\+\+\_\+dst,  }\item[{size\+\_\+t}]{\+\_\+\+\_\+n }\end{DoxyParamCaption})}

Update a block of {\itshape \+\_\+\+\_\+n} bytes to E\+E\+P\+R\+OM address {\itshape \+\_\+\+\_\+dst} from {\itshape \+\_\+\+\_\+src}. \begin{DoxyNote}{Note}
The argument order is mismatch with common functions like strcpy(). 
\end{DoxyNote}
\mbox{\Hypertarget{group__avr__eeprom_ga63aee2719099e8435e8584d4b3e51991}\label{group__avr__eeprom_ga63aee2719099e8435e8584d4b3e51991}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!eeprom\_update\_byte@{eeprom\_update\_byte}}
\index{eeprom\_update\_byte@{eeprom\_update\_byte}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{eeprom\_update\_byte()}{eeprom\_update\_byte()}}
{\footnotesize\ttfamily void eeprom\+\_\+update\+\_\+byte (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} $\ast$}]{\+\_\+\+\_\+p,  }\item[{\mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}}}]{\+\_\+\+\_\+value }\end{DoxyParamCaption})}

Update a byte {\itshape \+\_\+\+\_\+value} to E\+E\+P\+R\+OM address {\itshape \+\_\+\+\_\+p}. \mbox{\Hypertarget{group__avr__eeprom_gaab79c4b2b5e8159d5f37d26d11d3f954}\label{group__avr__eeprom_gaab79c4b2b5e8159d5f37d26d11d3f954}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!eeprom\_update\_dword@{eeprom\_update\_dword}}
\index{eeprom\_update\_dword@{eeprom\_update\_dword}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{eeprom\_update\_dword()}{eeprom\_update\_dword()}}
{\footnotesize\ttfamily void eeprom\+\_\+update\+\_\+dword (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__avr__stdint_ga33594304e786b158f3fb30289278f5af}{uint32\+\_\+t}} $\ast$}]{\+\_\+\+\_\+p,  }\item[{\mbox{\hyperlink{group__avr__stdint_ga33594304e786b158f3fb30289278f5af}{uint32\+\_\+t}}}]{\+\_\+\+\_\+value }\end{DoxyParamCaption})}

Update a 32-\/bit double word {\itshape \+\_\+\+\_\+value} to E\+E\+P\+R\+OM address {\itshape \+\_\+\+\_\+p}. \mbox{\Hypertarget{group__avr__eeprom_ga106a2e703b12cad4d35380b1a69ac586}\label{group__avr__eeprom_ga106a2e703b12cad4d35380b1a69ac586}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!eeprom\_update\_float@{eeprom\_update\_float}}
\index{eeprom\_update\_float@{eeprom\_update\_float}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{eeprom\_update\_float()}{eeprom\_update\_float()}}
{\footnotesize\ttfamily void eeprom\+\_\+update\+\_\+float (\begin{DoxyParamCaption}\item[{float $\ast$}]{\+\_\+\+\_\+p,  }\item[{float}]{\+\_\+\+\_\+value }\end{DoxyParamCaption})}

Update a float {\itshape \+\_\+\+\_\+value} to E\+E\+P\+R\+OM address {\itshape \+\_\+\+\_\+p}. \mbox{\Hypertarget{group__avr__eeprom_ga131cff4e1ae5fcdf5685cab524ea4553}\label{group__avr__eeprom_ga131cff4e1ae5fcdf5685cab524ea4553}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!eeprom\_update\_word@{eeprom\_update\_word}}
\index{eeprom\_update\_word@{eeprom\_update\_word}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{eeprom\_update\_word()}{eeprom\_update\_word()}}
{\footnotesize\ttfamily void eeprom\+\_\+update\+\_\+word (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__avr__stdint_ga1f1825b69244eb3ad2c7165ddc99c956}{uint16\+\_\+t}} $\ast$}]{\+\_\+\+\_\+p,  }\item[{\mbox{\hyperlink{group__avr__stdint_ga1f1825b69244eb3ad2c7165ddc99c956}{uint16\+\_\+t}}}]{\+\_\+\+\_\+value }\end{DoxyParamCaption})}

Update a word {\itshape \+\_\+\+\_\+value} to E\+E\+P\+R\+OM address {\itshape \+\_\+\+\_\+p}. \mbox{\Hypertarget{group__avr__eeprom_gac5c2be42eb170be7a26fe8b7cce4bc4d}\label{group__avr__eeprom_gac5c2be42eb170be7a26fe8b7cce4bc4d}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!eeprom\_write\_block@{eeprom\_write\_block}}
\index{eeprom\_write\_block@{eeprom\_write\_block}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{eeprom\_write\_block()}{eeprom\_write\_block()}}
{\footnotesize\ttfamily void eeprom\+\_\+write\+\_\+block (\begin{DoxyParamCaption}\item[{const void $\ast$}]{\+\_\+\+\_\+src,  }\item[{void $\ast$}]{\+\_\+\+\_\+dst,  }\item[{size\+\_\+t}]{\+\_\+\+\_\+n }\end{DoxyParamCaption})}

Write a block of {\itshape \+\_\+\+\_\+n} bytes to E\+E\+P\+R\+OM address {\itshape \+\_\+\+\_\+dst} from {\itshape \+\_\+\+\_\+src}. \begin{DoxyNote}{Note}
The argument order is mismatch with common functions like strcpy(). 
\end{DoxyNote}
\mbox{\Hypertarget{group__avr__eeprom_ga682e0b2ca0badd47e1e30e61617e1361}\label{group__avr__eeprom_ga682e0b2ca0badd47e1e30e61617e1361}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!eeprom\_write\_byte@{eeprom\_write\_byte}}
\index{eeprom\_write\_byte@{eeprom\_write\_byte}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{eeprom\_write\_byte()}{eeprom\_write\_byte()}}
{\footnotesize\ttfamily void eeprom\+\_\+write\+\_\+byte (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}} $\ast$}]{\+\_\+\+\_\+p,  }\item[{\mbox{\hyperlink{group__avr__stdint_gaba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}}}]{\+\_\+\+\_\+value }\end{DoxyParamCaption})}

Write a byte {\itshape \+\_\+\+\_\+value} to E\+E\+P\+R\+OM address {\itshape \+\_\+\+\_\+p}. \mbox{\Hypertarget{group__avr__eeprom_ga012c7fa61d9695b7f0f5187d2560e598}\label{group__avr__eeprom_ga012c7fa61d9695b7f0f5187d2560e598}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!eeprom\_write\_dword@{eeprom\_write\_dword}}
\index{eeprom\_write\_dword@{eeprom\_write\_dword}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{eeprom\_write\_dword()}{eeprom\_write\_dword()}}
{\footnotesize\ttfamily void eeprom\+\_\+write\+\_\+dword (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__avr__stdint_ga33594304e786b158f3fb30289278f5af}{uint32\+\_\+t}} $\ast$}]{\+\_\+\+\_\+p,  }\item[{\mbox{\hyperlink{group__avr__stdint_ga33594304e786b158f3fb30289278f5af}{uint32\+\_\+t}}}]{\+\_\+\+\_\+value }\end{DoxyParamCaption})}

Write a 32-\/bit double word {\itshape \+\_\+\+\_\+value} to E\+E\+P\+R\+OM address {\itshape \+\_\+\+\_\+p}. \mbox{\Hypertarget{group__avr__eeprom_gac738db5e12a0369d332ca43563755095}\label{group__avr__eeprom_gac738db5e12a0369d332ca43563755095}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!eeprom\_write\_float@{eeprom\_write\_float}}
\index{eeprom\_write\_float@{eeprom\_write\_float}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{eeprom\_write\_float()}{eeprom\_write\_float()}}
{\footnotesize\ttfamily void eeprom\+\_\+write\+\_\+float (\begin{DoxyParamCaption}\item[{float $\ast$}]{\+\_\+\+\_\+p,  }\item[{float}]{\+\_\+\+\_\+value }\end{DoxyParamCaption})}

Write a float {\itshape \+\_\+\+\_\+value} to E\+E\+P\+R\+OM address {\itshape \+\_\+\+\_\+p}. \mbox{\Hypertarget{group__avr__eeprom_ga38e4426e45512adb5e33bf8eff20ab41}\label{group__avr__eeprom_ga38e4426e45512adb5e33bf8eff20ab41}} 
\index{$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}!eeprom\_write\_word@{eeprom\_write\_word}}
\index{eeprom\_write\_word@{eeprom\_write\_word}!$<$avr/eeprom.h$>$: EEPROM handling@{$<$avr/eeprom.h$>$: EEPROM handling}}
\doxyparagraph{\texorpdfstring{eeprom\_write\_word()}{eeprom\_write\_word()}}
{\footnotesize\ttfamily void eeprom\+\_\+write\+\_\+word (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__avr__stdint_ga1f1825b69244eb3ad2c7165ddc99c956}{uint16\+\_\+t}} $\ast$}]{\+\_\+\+\_\+p,  }\item[{\mbox{\hyperlink{group__avr__stdint_ga1f1825b69244eb3ad2c7165ddc99c956}{uint16\+\_\+t}}}]{\+\_\+\+\_\+value }\end{DoxyParamCaption})}

Write a word {\itshape \+\_\+\+\_\+value} to E\+E\+P\+R\+OM address {\itshape \+\_\+\+\_\+p}. 