\hypertarget{lcd_8h}{
\section{lcd.h File Reference}
\label{lcd_8h}\index{lcd.h@{lcd.h}}
}


Dotmatrix LCD Library.  


{\ttfamily \#include $<$avr/io.h$>$}\par
{\ttfamily \#include $<$stdio.h$>$}\par
Include dependency graph for lcd.h:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=190pt]{lcd_8h__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=210pt]{lcd_8h__dep__incl}
\end{center}
\end{figure}
\subsection*{Defines}
\begin{DoxyCompactItemize}
\item 
\hypertarget{lcd_8h_aa9b8dcc02cea15aab8e3d0b7860327a7}{
\#define \hyperlink{lcd_8h_aa9b8dcc02cea15aab8e3d0b7860327a7}{INPUT\_\-BUFFER\_\-SIZE}~60}
\label{lcd_8h_aa9b8dcc02cea15aab8e3d0b7860327a7}

\begin{DoxyCompactList}\small\item\em size of the input buffer used when scrolling is enabled \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_ab42da8752a7b66348e1a92cb62036159}{
\#define \hyperlink{lcd_8h_ab42da8752a7b66348e1a92cb62036159}{LCD\_\-D\_\-PORT}~PORTC}
\label{lcd_8h_ab42da8752a7b66348e1a92cb62036159}

\begin{DoxyCompactList}\small\item\em Port for Data Lines DB4-\/DB7 = Px0-\/Px3. \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_af97f97ff3832d1289bbcb471090ea297}{
\#define \hyperlink{lcd_8h_af97f97ff3832d1289bbcb471090ea297}{LCD\_\-E\_\-PORT}~PORTD}
\label{lcd_8h_af97f97ff3832d1289bbcb471090ea297}

\begin{DoxyCompactList}\small\item\em Port for Control Line E. \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_ac5be2a22727fd9ca349e1c9bcbfbcd47}{
\#define \hyperlink{lcd_8h_ac5be2a22727fd9ca349e1c9bcbfbcd47}{LCD\_\-RS\_\-PORT}~PORTD}
\label{lcd_8h_ac5be2a22727fd9ca349e1c9bcbfbcd47}

\begin{DoxyCompactList}\small\item\em Port for Control Line RS. \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_ae8772bdf31db863b81805c837bdc2da2}{
\#define \hyperlink{lcd_8h_ae8772bdf31db863b81805c837bdc2da2}{LCD\_\-RW\_\-PORT}~PORTD}
\label{lcd_8h_ae8772bdf31db863b81805c837bdc2da2}

\begin{DoxyCompactList}\small\item\em Port for Control Line RW. \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_af66fbfc1193b1d9f3bdc3a61c9ce0b10}{
\#define \hyperlink{lcd_8h_af66fbfc1193b1d9f3bdc3a61c9ce0b10}{LCD\_\-DATAMSK}~0x0f}
\label{lcd_8h_af66fbfc1193b1d9f3bdc3a61c9ce0b10}

\begin{DoxyCompactList}\small\item\em Mask of the Data Pins. \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_a4781e073871c6f27f89b9463ad3a4ed1}{
\#define \hyperlink{lcd_8h_a4781e073871c6f27f89b9463ad3a4ed1}{LCD\_\-RS}~4}
\label{lcd_8h_a4781e073871c6f27f89b9463ad3a4ed1}

\begin{DoxyCompactList}\small\item\em Register Set Pin Bitposition. \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_a6ec15b1e813d1f56d2eb644a127e5d49}{
\#define \hyperlink{lcd_8h_a6ec15b1e813d1f56d2eb644a127e5d49}{LCD\_\-E}~2}
\label{lcd_8h_a6ec15b1e813d1f56d2eb644a127e5d49}

\begin{DoxyCompactList}\small\item\em LCD Enable Pin Bitposition. \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_a26089a10ddd59a0dc7283c19ccc02533}{
\#define \hyperlink{lcd_8h_a26089a10ddd59a0dc7283c19ccc02533}{LCD\_\-RW}~3}
\label{lcd_8h_a26089a10ddd59a0dc7283c19ccc02533}

\begin{DoxyCompactList}\small\item\em Read / Write Pin Bitposition. \item\end{DoxyCompactList}\item 
\#define \hyperlink{lcd_8h_aab966fa72b8229d92ed1726c3e62504d}{LCD\_\-TYPE}~3
\item 
\hypertarget{lcd_8h_a90382fad84686bfd1aa1a9ca0681403d}{
\#define \hyperlink{lcd_8h_a90382fad84686bfd1aa1a9ca0681403d}{ks0073}}
\label{lcd_8h_a90382fad84686bfd1aa1a9ca0681403d}

\begin{DoxyCompactList}\small\item\em if the controller is a KS0073 the addresses of the LDC-\/Rows are slightly different \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_a7c67b7105bcd21f4bb1f978d0445dfe8}{
\#define {\bfseries ENTRY\_\-MODE}~0b00000100}
\label{lcd_8h_a7c67b7105bcd21f4bb1f978d0445dfe8}

\item 
\hypertarget{lcd_8h_a79532f568e4ef4f9f3156c2b94de5d05}{
\#define {\bfseries DISPLAY\_\-STATUS}~0b00001100}
\label{lcd_8h_a79532f568e4ef4f9f3156c2b94de5d05}

\item 
\hypertarget{lcd_8h_a59f35c48e6411073b387a95fa81df8be}{
\#define {\bfseries FUNCTION\_\-SET}~0b00101000}
\label{lcd_8h_a59f35c48e6411073b387a95fa81df8be}

\item 
\hypertarget{lcd_8h_afd5cc3a3c366b6824cab73ddbf58b629}{
\#define {\bfseries FUNCTION\_\-SET\_\-RE}~0b00100100}
\label{lcd_8h_afd5cc3a3c366b6824cab73ddbf58b629}

\item 
\hypertarget{lcd_8h_a96a93a365a3288c370691a021aaadba3}{
\#define {\bfseries EXT\_\-FUNCTION\_\-SET}~0b00001001}
\label{lcd_8h_a96a93a365a3288c370691a021aaadba3}

\item 
\hypertarget{lcd_8h_a297b2c9447670639c97dd56f22205a58}{
\#define \hyperlink{lcd_8h_a297b2c9447670639c97dd56f22205a58}{LCD\_\-CMD\_\-CLEAR}~0x01}
\label{lcd_8h_a297b2c9447670639c97dd56f22205a58}

\begin{DoxyCompactList}\small\item\em LCD Command: Clear Screen. \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_a024749395e2a306bc7a34bc3c481c797}{
\#define \hyperlink{lcd_8h_a024749395e2a306bc7a34bc3c481c797}{LCD\_\-CMD\_\-HOME}~0x02}
\label{lcd_8h_a024749395e2a306bc7a34bc3c481c797}

\begin{DoxyCompactList}\small\item\em LCD Command: move cursor to upper left corner. \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_a88de82d925bb295bafe69635a47264da}{
\#define \hyperlink{lcd_8h_a88de82d925bb295bafe69635a47264da}{LCD\_\-CMD\_\-MOVE\_\-RIGHT}~0x14}
\label{lcd_8h_a88de82d925bb295bafe69635a47264da}

\begin{DoxyCompactList}\small\item\em LCD Command: move cursor richt by one position. \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_ab26398a34ee4e193b5163dad8af7fb5e}{
\#define \hyperlink{lcd_8h_ab26398a34ee4e193b5163dad8af7fb5e}{LCD\_\-CMD\_\-MOVE\_\-LEFT}~0x10}
\label{lcd_8h_ab26398a34ee4e193b5163dad8af7fb5e}

\begin{DoxyCompactList}\small\item\em LCD Command: move cursor left by one position. \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_a6503217fd6b62343679f33011ff29056}{
\#define \hyperlink{lcd_8h_a6503217fd6b62343679f33011ff29056}{LCD\_\-CMD\_\-SHIFT\_\-RIGHT}~0x1C}
\label{lcd_8h_a6503217fd6b62343679f33011ff29056}

\begin{DoxyCompactList}\small\item\em LCD Command: shift right. \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_a7640fe7ebae6162d9c1836636c96dd18}{
\#define \hyperlink{lcd_8h_a7640fe7ebae6162d9c1836636c96dd18}{LCD\_\-CMD\_\-SHIFT\_\-LEFT}~0x18}
\label{lcd_8h_a7640fe7ebae6162d9c1836636c96dd18}

\begin{DoxyCompactList}\small\item\em LCD Command: shift left. \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_a0d333ac389595d1f677ab6e1e0a58e74}{
\#define \hyperlink{lcd_8h_a0d333ac389595d1f677ab6e1e0a58e74}{LCD\_\-CMD\_\-DISPLAY\_\-OFF}~0x08}
\label{lcd_8h_a0d333ac389595d1f677ab6e1e0a58e74}

\begin{DoxyCompactList}\small\item\em LCD Command: Display off. \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_a7572bc6998f73117e83b184aba2e40ea}{
\#define \hyperlink{lcd_8h_a7572bc6998f73117e83b184aba2e40ea}{LCD\_\-CMD\_\-DISPLAY\_\-ON}~0x0C}
\label{lcd_8h_a7572bc6998f73117e83b184aba2e40ea}

\begin{DoxyCompactList}\small\item\em LCD Command: Display on (CUESOR and BLINK is OFF) \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_a5e0e3fd83c249cb0bec554f27b4ec705}{
\#define \hyperlink{lcd_8h_a5e0e3fd83c249cb0bec554f27b4ec705}{LCD\_\-CMD\_\-CURSOR\_\-ON}~0x0E}
\label{lcd_8h_a5e0e3fd83c249cb0bec554f27b4ec705}

\begin{DoxyCompactList}\small\item\em LCD Command: Cursor on. \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_a823f56835a46bba74191359f0f083319}{
\#define \hyperlink{lcd_8h_a823f56835a46bba74191359f0f083319}{LCD\_\-CMD\_\-BLINK\_\-ON}~0x0D}
\label{lcd_8h_a823f56835a46bba74191359f0f083319}

\begin{DoxyCompactList}\small\item\em LCD Command: Blink on. \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_a543978763361dad58a7172fc53d95cd4}{
\#define \hyperlink{lcd_8h_a543978763361dad58a7172fc53d95cd4}{lcd\_\-home}()~lcd\_\-command(LCD\_\-CMD\_\-HOME);}
\label{lcd_8h_a543978763361dad58a7172fc53d95cd4}

\begin{DoxyCompactList}\small\item\em move the Cursor to to the upper left corner of the screen. \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_a7f6f5300e05ba406a22648f934fd0021}{
\#define \hyperlink{lcd_8h_a7f6f5300e05ba406a22648f934fd0021}{lcd\_\-clear}()~lcd\_\-command(LCD\_\-CMD\_\-CLEAR);}
\label{lcd_8h_a7f6f5300e05ba406a22648f934fd0021}

\begin{DoxyCompactList}\small\item\em sends the command clear the display \item\end{DoxyCompactList}\item 
\hypertarget{lcd_8h_a87bd73f5eed9a710c0b23a23c33b1e25}{
\#define {\bfseries LCD\_\-D\_\-DDR}~(LCD\_\-D\_\-PORT-\/1)}
\label{lcd_8h_a87bd73f5eed9a710c0b23a23c33b1e25}

\item 
\hypertarget{lcd_8h_ac9bfbc1adc7df3db8b9061fe14bdf954}{
\#define {\bfseries LCD\_\-D\_\-PIN}~(LCD\_\-D\_\-PORT-\/2)}
\label{lcd_8h_ac9bfbc1adc7df3db8b9061fe14bdf954}

\item 
\hypertarget{lcd_8h_a644efc36b19c19a2742de4d2f5300253}{
\#define {\bfseries LCD\_\-E\_\-DDR}~(LCD\_\-E\_\-PORT-\/1)}
\label{lcd_8h_a644efc36b19c19a2742de4d2f5300253}

\item 
\hypertarget{lcd_8h_a1de29b032973d1a75c57a814b064b0d9}{
\#define {\bfseries LCD\_\-RS\_\-DDR}~(LCD\_\-RS\_\-PORT-\/1)}
\label{lcd_8h_a1de29b032973d1a75c57a814b064b0d9}

\item 
\hypertarget{lcd_8h_a378454f2a31934d3704fd7f64f158d68}{
\#define {\bfseries LCD\_\-RW\_\-DDR}~(LCD\_\-RW\_\-PORT-\/1)}
\label{lcd_8h_a378454f2a31934d3704fd7f64f158d68}

\item 
\hypertarget{lcd_8h_a9a59fc4d524d3519a6bd0cb451850a65}{
\#define {\bfseries LCD\_\-ROWS}~4}
\label{lcd_8h_a9a59fc4d524d3519a6bd0cb451850a65}

\item 
\hypertarget{lcd_8h_a0afb537ac0813a7acc2f797a4d3baa0b}{
\#define {\bfseries LCD\_\-COLS}~20}
\label{lcd_8h_a0afb537ac0813a7acc2f797a4d3baa0b}

\item 
\hypertarget{lcd_8h_ac30f9eb729142201bec6ef0aa45e5c07}{
\#define {\bfseries LCD\_\-LINE1}~0x00}
\label{lcd_8h_ac30f9eb729142201bec6ef0aa45e5c07}

\item 
\hypertarget{lcd_8h_aee2c59879d4dca634a1ba6a2769e4ee6}{
\#define {\bfseries LCD\_\-LINE2}~0x20}
\label{lcd_8h_aee2c59879d4dca634a1ba6a2769e4ee6}

\item 
\hypertarget{lcd_8h_a3a2ee32835c7649e5da01563407d8665}{
\#define {\bfseries LCD\_\-LINE3}~0x40}
\label{lcd_8h_a3a2ee32835c7649e5da01563407d8665}

\item 
\hypertarget{lcd_8h_a11fc99e0a8ac2eb3504e94b0a771234f}{
\#define {\bfseries LCD\_\-LINE4}~0x60}
\label{lcd_8h_a11fc99e0a8ac2eb3504e94b0a771234f}

\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{lcd_8h_ad0729d2cba627825a089ca1fff12ba29}{lcd\_\-data} (uint8\_\-t data)
\begin{DoxyCompactList}\small\item\em send one data byte \item\end{DoxyCompactList}\item 
void \hyperlink{lcd_8h_aea9d14f02df06f948cb5a56776980826}{lcd\_\-command} (uint8\_\-t cmd)
\begin{DoxyCompactList}\small\item\em send a command byte \item\end{DoxyCompactList}\item 
void \hyperlink{lcd_8h_afa7732f62c8e6cf044d439a88d015ea8}{lcd\_\-setadr} (uint8\_\-t adr)
\begin{DoxyCompactList}\small\item\em set a specific display address \item\end{DoxyCompactList}\item 
void \hyperlink{lcd_8h_a851586f8b8e221b1eae214c6136791cd}{lcd\_\-puts} (char const $\ast$c)
\begin{DoxyCompactList}\small\item\em write a string \item\end{DoxyCompactList}\item 
void \hyperlink{lcd_8h_a1ec0eb0a0df2a48d197151c5385e4d03}{lcd\_\-puts\_\-P} (char const $\ast$)
\begin{DoxyCompactList}\small\item\em write a string from flash \item\end{DoxyCompactList}\item 
void \hyperlink{lcd_8h_a6842775ba83d166f02b8fef8bb63b1e6}{lcd\_\-init} (void)
\begin{DoxyCompactList}\small\item\em initialise the display \item\end{DoxyCompactList}\item 
uint8\_\-t \hyperlink{lcd_8h_a5562966b89ff85d31649b773c08f66a5}{lcd\_\-readadr} (void)
\begin{DoxyCompactList}\small\item\em read the position of the cursor \item\end{DoxyCompactList}\item 
int \hyperlink{lcd_8h_a1e32b03f32b635bf65804611dd601bd3}{lcd\_\-putchar} (char data, FILE $\ast$sream)
\begin{DoxyCompactList}\small\item\em Write one Character on the Display. \item\end{DoxyCompactList}\item 
void \hyperlink{lcd_8h_aabcb027659950ed9d437cf50670fac8e}{print\_\-buffer} (void)
\begin{DoxyCompactList}\small\item\em send the buffer contents to the display \item\end{DoxyCompactList}\item 
void \hyperlink{lcd_8h_aa858077ddf4743f9c52a21036fc088a1}{lcd\_\-scroll} (void)
\begin{DoxyCompactList}\small\item\em scroll individual lines \item\end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Dotmatrix LCD Library. \begin{DoxyAuthor}{Authors}
Dominic Rathje (\href{mailto:dominic.rathje@uni-ulm.de}{\tt dominic.rathje@uni-\/ulm.de})\par
 Christian Degenhart (\href{mailto:christian.degenhart@uni-ulm.de}{\tt christian.degenhart@uni-\/ulm.de}) 
\end{DoxyAuthor}
\begin{DoxyVersion}{Version}
1.1 
\end{DoxyVersion}
\begin{DoxyNote}{Note}

\begin{DoxyItemize}
\item Compiler : WinAVR 20100110
\item Supported devices : ATMega8 
\end{DoxyItemize}
\end{DoxyNote}


Definition in file \hyperlink{lcd_8h_source}{lcd.h}.



\subsection{Define Documentation}
\hypertarget{lcd_8h_aab966fa72b8229d92ed1726c3e62504d}{
\index{lcd.h@{lcd.h}!LCD\_\-TYPE@{LCD\_\-TYPE}}
\index{LCD\_\-TYPE@{LCD\_\-TYPE}!lcd.h@{lcd.h}}
\subsubsection[{LCD\_\-TYPE}]{\setlength{\rightskip}{0pt plus 5cm}\#define LCD\_\-TYPE~3}}
\label{lcd_8h_aab966fa72b8229d92ed1726c3e62504d}
defines the format of the connected Display 0 = 16$\ast$2 1 = 16$\ast$4 2 = 40$\ast$2 3 = 4$\ast$20 

Definition at line 34 of file lcd.h.



\subsection{Function Documentation}
\hypertarget{lcd_8h_aea9d14f02df06f948cb5a56776980826}{
\index{lcd.h@{lcd.h}!lcd\_\-command@{lcd\_\-command}}
\index{lcd\_\-command@{lcd\_\-command}!lcd.h@{lcd.h}}
\subsubsection[{lcd\_\-command}]{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-command (
\begin{DoxyParamCaption}
\item[{uint8\_\-t}]{ cmd}
\end{DoxyParamCaption}
)}}
\label{lcd_8h_aea9d14f02df06f948cb5a56776980826}


send a command byte 


\begin{DoxyParams}{Parameters}
{\em cmd} & Command to send \\
\hline
\end{DoxyParams}
\hypertarget{lcd_8h_ad0729d2cba627825a089ca1fff12ba29}{
\index{lcd.h@{lcd.h}!lcd\_\-data@{lcd\_\-data}}
\index{lcd\_\-data@{lcd\_\-data}!lcd.h@{lcd.h}}
\subsubsection[{lcd\_\-data}]{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-data (
\begin{DoxyParamCaption}
\item[{uint8\_\-t}]{ data}
\end{DoxyParamCaption}
)}}
\label{lcd_8h_ad0729d2cba627825a089ca1fff12ba29}


send one data byte 


\begin{DoxyParams}{Parameters}
{\em data} & Byte to send \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}
\hypertarget{lcd_8h_a6842775ba83d166f02b8fef8bb63b1e6}{
\index{lcd.h@{lcd.h}!lcd\_\-init@{lcd\_\-init}}
\index{lcd\_\-init@{lcd\_\-init}!lcd.h@{lcd.h}}
\subsubsection[{lcd\_\-init}]{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-init (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}
\label{lcd_8h_a6842775ba83d166f02b8fef8bb63b1e6}


initialise the display 

executes the initialisation sequence defined by the HD44780 datasheet 

Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=232pt]{lcd_8h_a6842775ba83d166f02b8fef8bb63b1e6_icgraph}
\end{center}
\end{figure}


\hypertarget{lcd_8h_a1e32b03f32b635bf65804611dd601bd3}{
\index{lcd.h@{lcd.h}!lcd\_\-putchar@{lcd\_\-putchar}}
\index{lcd\_\-putchar@{lcd\_\-putchar}!lcd.h@{lcd.h}}
\subsubsection[{lcd\_\-putchar}]{\setlength{\rightskip}{0pt plus 5cm}int lcd\_\-putchar (
\begin{DoxyParamCaption}
\item[{char}]{ data, }
\item[{FILE $\ast$}]{ sream}
\end{DoxyParamCaption}
)}}
\label{lcd_8h_a1e32b03f32b635bf65804611dd601bd3}


Write one Character on the Display. 

Characters received are transformer by a lookup-\/table because the charset of the Display is not equal to ASCII. As input to this function any ASCII character that can be typed ba a German or American Keyboard is valid and displayed correctly on the screen.

As the Display has some amazing special characters, like fancy arrows, there are some sequences that are parsed and replaced by the corresponding symbol. See \href{https://wiki.fs-et.de/student-lab/UartDisplay}{\tt https://wiki.fs-\/et.de/student-\/lab/UartDisplay} for details on the parser.


\begin{DoxyParams}{Parameters}
{\em data} & ASCII Character to print. \\
\hline
{\em stream} & (is necessary to be compatible with printf) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success. 
\end{DoxyReturn}


Definition at line 187 of file lcd.c.



Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=354pt]{lcd_8h_a1e32b03f32b635bf65804611dd601bd3_cgraph}
\end{center}
\end{figure}


\hypertarget{lcd_8h_a851586f8b8e221b1eae214c6136791cd}{
\index{lcd.h@{lcd.h}!lcd\_\-puts@{lcd\_\-puts}}
\index{lcd\_\-puts@{lcd\_\-puts}!lcd.h@{lcd.h}}
\subsubsection[{lcd\_\-puts}]{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-puts (
\begin{DoxyParamCaption}
\item[{char const $\ast$}]{ c}
\end{DoxyParamCaption}
)}}
\label{lcd_8h_a851586f8b8e221b1eae214c6136791cd}


write a string 

writes a sequence of characters until the first zero-\/byte.


\begin{DoxyParams}{Parameters}
{\em c} & Pointer to a terminated string \\
\hline
\end{DoxyParams}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=338pt]{lcd_8h_a851586f8b8e221b1eae214c6136791cd_icgraph}
\end{center}
\end{figure}


\hypertarget{lcd_8h_a1ec0eb0a0df2a48d197151c5385e4d03}{
\index{lcd.h@{lcd.h}!lcd\_\-puts\_\-P@{lcd\_\-puts\_\-P}}
\index{lcd\_\-puts\_\-P@{lcd\_\-puts\_\-P}!lcd.h@{lcd.h}}
\subsubsection[{lcd\_\-puts\_\-P}]{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-puts\_\-P (
\begin{DoxyParamCaption}
\item[{char const $\ast$}]{}
\end{DoxyParamCaption}
)}}
\label{lcd_8h_a1ec0eb0a0df2a48d197151c5385e4d03}


write a string from flash 

same as lcd\_\-puts expect that the string is located in flash memory. \begin{DoxySeeAlso}{See also}
\hyperlink{lcd_8h_a851586f8b8e221b1eae214c6136791cd}{lcd\_\-puts} 
\end{DoxySeeAlso}

\begin{DoxyParams}{Parameters}
{\em c} & Pointer to a terminated string \\
\hline
\end{DoxyParams}
\hypertarget{lcd_8h_a5562966b89ff85d31649b773c08f66a5}{
\index{lcd.h@{lcd.h}!lcd\_\-readadr@{lcd\_\-readadr}}
\index{lcd\_\-readadr@{lcd\_\-readadr}!lcd.h@{lcd.h}}
\subsubsection[{lcd\_\-readadr}]{\setlength{\rightskip}{0pt plus 5cm}uint8\_\-t lcd\_\-readadr (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}
\label{lcd_8h_a5562966b89ff85d31649b773c08f66a5}


read the position of the cursor 

\begin{DoxyReturn}{Returns}
current address of the cursor position 
\end{DoxyReturn}
\hypertarget{lcd_8h_aa858077ddf4743f9c52a21036fc088a1}{
\index{lcd.h@{lcd.h}!lcd\_\-scroll@{lcd\_\-scroll}}
\index{lcd\_\-scroll@{lcd\_\-scroll}!lcd.h@{lcd.h}}
\subsubsection[{lcd\_\-scroll}]{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-scroll (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}
\label{lcd_8h_aa858077ddf4743f9c52a21036fc088a1}


scroll individual lines 

This function should be called by the main loop regularly if scroll mode is activated. Each time this function is executed the content of a line longer than the physical display lentgh is rotated by one position. 

Definition at line 134 of file lcd.c.



Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=336pt]{lcd_8h_aa858077ddf4743f9c52a21036fc088a1_cgraph}
\end{center}
\end{figure}


\hypertarget{lcd_8h_afa7732f62c8e6cf044d439a88d015ea8}{
\index{lcd.h@{lcd.h}!lcd\_\-setadr@{lcd\_\-setadr}}
\index{lcd\_\-setadr@{lcd\_\-setadr}!lcd.h@{lcd.h}}
\subsubsection[{lcd\_\-setadr}]{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-setadr (
\begin{DoxyParamCaption}
\item[{uint8\_\-t}]{ adr}
\end{DoxyParamCaption}
)}}
\label{lcd_8h_afa7732f62c8e6cf044d439a88d015ea8}


set a specific display address 

Moves the cursor to a specific address, so the next character sent will be displayed at this position. To get the address of a certain position use the offset of the line (LCD\_\-LINE\mbox{[}1..4\mbox{]}) and add the desired column.


\begin{DoxyParams}{Parameters}
{\em adr} & Address \\
\hline
\end{DoxyParams}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=346pt]{lcd_8h_afa7732f62c8e6cf044d439a88d015ea8_icgraph}
\end{center}
\end{figure}


\hypertarget{lcd_8h_aabcb027659950ed9d437cf50670fac8e}{
\index{lcd.h@{lcd.h}!print\_\-buffer@{print\_\-buffer}}
\index{print\_\-buffer@{print\_\-buffer}!lcd.h@{lcd.h}}
\subsubsection[{print\_\-buffer}]{\setlength{\rightskip}{0pt plus 5cm}void print\_\-buffer (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}
\label{lcd_8h_aabcb027659950ed9d437cf50670fac8e}


send the buffer contents to the display 

prints the contents of the buffer on the screen. This function is called automatically by lcd\_\-putchar when a  is received. 

Definition at line 78 of file lcd.c.



Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=242pt]{lcd_8h_aabcb027659950ed9d437cf50670fac8e_cgraph}
\end{center}
\end{figure}




Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=248pt]{lcd_8h_aabcb027659950ed9d437cf50670fac8e_icgraph}
\end{center}
\end{figure}


