avr-lc7981/doc/html/lc7981_8h.html

1024 lines
47 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>glcd: include/lc7981.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>include/lc7981.h File Reference</h1><code>#include &lt;avr/io.h&gt;</code><br/>
<code>#include &lt;util/delay.h&gt;</code><br/>
<code>#include &lt;avr/pgmspace.h&gt;</code><br/>
<p><a href="lc7981_8h_source.html">Go to the source code of this file.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#ae6ff861bd55f4dc46f25f5f6abfca15f">LC7981_H_</a>&nbsp;&nbsp;&nbsp;LC7981_H_</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">protects this file from beeing double included <a href="#ae6ff861bd55f4dc46f25f5f6abfca15f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a8e945df7ca614325cafa08258e82a63c">LCD_CTRL</a>&nbsp;&nbsp;&nbsp;PORTA</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Port used for control signals. <a href="#a8e945df7ca614325cafa08258e82a63c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a4b6c8400da9a1ca3d4d83f3ef1f9c34a">LCD_CRTL_DDR</a>&nbsp;&nbsp;&nbsp;DDRA</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Data-Direction-Register for the control signals. <a href="#a4b6c8400da9a1ca3d4d83f3ef1f9c34a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a4781e073871c6f27f89b9463ad3a4ed1">LCD_RS</a>&nbsp;&nbsp;&nbsp;PA4</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Register-Select Pin of the Display. <a href="#a4781e073871c6f27f89b9463ad3a4ed1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a26089a10ddd59a0dc7283c19ccc02533">LCD_RW</a>&nbsp;&nbsp;&nbsp;PA2</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read-Write-select Pin. <a href="#a26089a10ddd59a0dc7283c19ccc02533"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a1640ffbc0d8ec0f7edb04a2b93918072">LCD_EN</a>&nbsp;&nbsp;&nbsp;PA0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Strobe Pin. <a href="#a1640ffbc0d8ec0f7edb04a2b93918072"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a25e9d818788f36ed74d7c4579f87f2a6">LCD_DATA</a>&nbsp;&nbsp;&nbsp;PORTD</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Port used for data. <a href="#a25e9d818788f36ed74d7c4579f87f2a6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#abd18e47e71697a28fd0ca765cefc7411">LCD_DATA_PIN</a>&nbsp;&nbsp;&nbsp;PIND</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Port used for reading the data. <a href="#abd18e47e71697a28fd0ca765cefc7411"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a0c114e723aa4c162c415fb6d4d963dd7">LCD_DATA_DDR</a>&nbsp;&nbsp;&nbsp;DDRD</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Data-Direction-Register for data. <a href="#a0c114e723aa4c162c415fb6d4d963dd7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a795b48274d3f80bc744a707b67fd93e9">lcd_rs_high</a>()&nbsp;&nbsp;&nbsp;(LCD_CTRL |= (1 &lt;&lt; LCD_RS))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the Register-Select pin high. <a href="#a795b48274d3f80bc744a707b67fd93e9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a6edb13d59460246fb4cc32ada1c9f4a8">lcd_rs_low</a>()&nbsp;&nbsp;&nbsp;(LCD_CTRL &amp;= ~(1 &lt;&lt; LCD_RS))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the Register-Select pin low. <a href="#a6edb13d59460246fb4cc32ada1c9f4a8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#ad0ce3cd9b481370ad4de36eff08440c8">lcd_rw_high</a>()&nbsp;&nbsp;&nbsp;(LCD_CTRL |= (1 &lt;&lt; LCD_RW))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the Read-Write-Select pin high. <a href="#ad0ce3cd9b481370ad4de36eff08440c8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a7f5ebe0ca71b1298a7d3423850cc82b1">lcd_rw_low</a>()&nbsp;&nbsp;&nbsp;(LCD_CTRL &amp;= ~(1 &lt;&lt; LCD_RW))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the Register-Select pin low. <a href="#a7f5ebe0ca71b1298a7d3423850cc82b1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#ae14be306d3620577abc8613d40401b04">lcd_en_high</a>()&nbsp;&nbsp;&nbsp;(LCD_CTRL |= (1 &lt;&lt; LCD_EN))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the strobe pin high. <a href="#ae14be306d3620577abc8613d40401b04"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#ad8dcdb36a9410fd96b2c936b7c9355dd">lcd_en_low</a>()&nbsp;&nbsp;&nbsp;(LCD_CTRL &amp;= ~(1 &lt;&lt; LCD_EN))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the strobe pin low. <a href="#ad8dcdb36a9410fd96b2c936b7c9355dd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a90a69d37f5c80f3ded970acf2dacf4c0">LCD_TEXT</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constant for text mode. <a href="#a90a69d37f5c80f3ded970acf2dacf4c0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a720ef60606ac38ca3a5ab96a9c2b8168">LCD_TEXT_LINES</a>&nbsp;&nbsp;&nbsp;10</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of lines in text mode. <a href="#a720ef60606ac38ca3a5ab96a9c2b8168"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a82f0a630f3c41b5233f2ceb07c7dd736">LCD_TEXT_COLUMNS</a>&nbsp;&nbsp;&nbsp;26</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of columns in text mode. <a href="#a82f0a630f3c41b5233f2ceb07c7dd736"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#adfaedf8da8e73d39a98d709b519a3117">LCD_GRAPHIC</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constant for graphic mode. <a href="#adfaedf8da8e73d39a98d709b519a3117"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a51e83be6f6929f2a29d5467cd937dfc6">LCD_GRAPHIC_WIDTH</a>&nbsp;&nbsp;&nbsp;160</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Horizontal display size in pixels. <a href="#a51e83be6f6929f2a29d5467cd937dfc6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a70265c4f840ef78872243e91c923af2f">LCD_GRAPHIC_HEIGHT</a>&nbsp;&nbsp;&nbsp;80</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Vertical display size in pixels. <a href="#a70265c4f840ef78872243e91c923af2f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#aeb2d212a26da4a5a4d3231b2773023e5">PIXEL_ON</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see lcd_plot_pixel <a href="#aeb2d212a26da4a5a4d3231b2773023e5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#acda2f1b1cf6310700d0d91643c40e068">PIXEL_OFF</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see lcd_plot_pixel <a href="#acda2f1b1cf6310700d0d91643c40e068"></a><br/></td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a9b18aca098d68e55bd7dd4b83f4f36e9">lcd_init</a> (uint8_t mode)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">lcd_init set the to default values. <a href="#a9b18aca098d68e55bd7dd4b83f4f36e9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#ad235a86241458b1e7b8771688bfdaf9a">lcd_clear</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears the display by setting the whole memory to 0. <a href="#ad235a86241458b1e7b8771688bfdaf9a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a30251238a49999658455fdb0233757fb">lcd_write_text</a> (char *txt)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Outputs text in at the current cursor position. <a href="#a30251238a49999658455fdb0233757fb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#adbf47a5efdf02367ded1ebf8f9edb5fe">lcd_gotoxy</a> (uint8_t x, uint8_t y)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the display cursor to a specific location. <a href="#adbf47a5efdf02367ded1ebf8f9edb5fe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a735111507ed83172f58d5af2953e31c6">lcd_plot_pixel</a> (uint8_t x, uint8_t y, uint8_t set)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set or unset a pixel at the specified location <a href="#a735111507ed83172f58d5af2953e31c6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#aa89be137ee35d3fd7e88782aafb0efdf">lcd_plot_bitmap</a> (uint8_t x, uint8_t y, PGM_P bitmap, uint8_t w, uint8_t h)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function will plot a bitmap with the upper left corner to the given coordinates. <a href="#aa89be137ee35d3fd7e88782aafb0efdf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a3d66dccc8324afe2e7b4cdd0970916f6">lcd_plot_char</a> (uint8_t x, uint8_t y_off, uint8_t c, uint8_t fw, uint8_t fh, PGM_P font)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Plots a single character in graphicmode. <a href="#a3d66dccc8324afe2e7b4cdd0970916f6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a0a47b2eaae0a5e028c0065e945147aed">lcd_plot_text</a> (uint8_t x, uint8_t y_off, const char *text, uint8_t fw, uint8_t fh, PGM_P font)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Plots a text using lcd_plot_char. <a href="#a0a47b2eaae0a5e028c0065e945147aed"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#ad5c555bfaeaf1a8bd547b036816881f0">lcd_plot_pgmtext</a> (uint8_t x, uint8_t y_off, PGM_P text, uint8_t fw, uint8_t fh, PGM_P font)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Plots a text using lcd_plot_char. <a href="#ad5c555bfaeaf1a8bd547b036816881f0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#ae6e048011d567dd2859901544ebf7051">lcd_strobe</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates the strobe signal for writing data. <a href="#ae6e048011d567dd2859901544ebf7051"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a31db85f1f48f4802c24218bc165ea4e1">lcd_write_command</a> (uint8_t cmd, uint8_t data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Writes a command and a data byte to the lcd. <a href="#a31db85f1f48f4802c24218bc165ea4e1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a2753ae63b5b2e212d5dc101749b76249">lcd_read_byte</a> (uint16_t pos)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads a byte from the display memory. <a href="#a2753ae63b5b2e212d5dc101749b76249"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#a9f832e526c77af56c35ff22032d934e7">lcd_write_byte</a> (uint16_t pos, uint8_t byte)</td></tr>
</table>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="ae6ff861bd55f4dc46f25f5f6abfca15f"></a><!-- doxytag: member="lc7981.h::LC7981_H_" ref="ae6ff861bd55f4dc46f25f5f6abfca15f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LC7981_H_&nbsp;&nbsp;&nbsp;LC7981_H_</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>protects this file from beeing double included </p>
</div>
</div>
<a class="anchor" id="a4b6c8400da9a1ca3d4d83f3ef1f9c34a"></a><!-- doxytag: member="lc7981.h::LCD_CRTL_DDR" ref="a4b6c8400da9a1ca3d4d83f3ef1f9c34a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_CRTL_DDR&nbsp;&nbsp;&nbsp;DDRA</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Data-Direction-Register for the control signals. </p>
</div>
</div>
<a class="anchor" id="a8e945df7ca614325cafa08258e82a63c"></a><!-- doxytag: member="lc7981.h::LCD_CTRL" ref="a8e945df7ca614325cafa08258e82a63c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_CTRL&nbsp;&nbsp;&nbsp;PORTA</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Port used for control signals. </p>
</div>
</div>
<a class="anchor" id="a25e9d818788f36ed74d7c4579f87f2a6"></a><!-- doxytag: member="lc7981.h::LCD_DATA" ref="a25e9d818788f36ed74d7c4579f87f2a6" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_DATA&nbsp;&nbsp;&nbsp;PORTD</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Port used for data. </p>
</div>
</div>
<a class="anchor" id="a0c114e723aa4c162c415fb6d4d963dd7"></a><!-- doxytag: member="lc7981.h::LCD_DATA_DDR" ref="a0c114e723aa4c162c415fb6d4d963dd7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_DATA_DDR&nbsp;&nbsp;&nbsp;DDRD</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Data-Direction-Register for data. </p>
</div>
</div>
<a class="anchor" id="abd18e47e71697a28fd0ca765cefc7411"></a><!-- doxytag: member="lc7981.h::LCD_DATA_PIN" ref="abd18e47e71697a28fd0ca765cefc7411" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_DATA_PIN&nbsp;&nbsp;&nbsp;PIND</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Port used for reading the data. </p>
</div>
</div>
<a class="anchor" id="a1640ffbc0d8ec0f7edb04a2b93918072"></a><!-- doxytag: member="lc7981.h::LCD_EN" ref="a1640ffbc0d8ec0f7edb04a2b93918072" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_EN&nbsp;&nbsp;&nbsp;PA0</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Strobe Pin. </p>
</div>
</div>
<a class="anchor" id="ae14be306d3620577abc8613d40401b04"></a><!-- doxytag: member="lc7981.h::lcd_en_high" ref="ae14be306d3620577abc8613d40401b04" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define lcd_en_high</td>
<td>(</td>
&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;(LCD_CTRL |= (1 &lt;&lt; LCD_EN))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Set the strobe pin high. </p>
</div>
</div>
<a class="anchor" id="ad8dcdb36a9410fd96b2c936b7c9355dd"></a><!-- doxytag: member="lc7981.h::lcd_en_low" ref="ad8dcdb36a9410fd96b2c936b7c9355dd" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define lcd_en_low</td>
<td>(</td>
&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;(LCD_CTRL &amp;= ~(1 &lt;&lt; LCD_EN))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Set the strobe pin low. </p>
</div>
</div>
<a class="anchor" id="adfaedf8da8e73d39a98d709b519a3117"></a><!-- doxytag: member="lc7981.h::LCD_GRAPHIC" ref="adfaedf8da8e73d39a98d709b519a3117" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_GRAPHIC&nbsp;&nbsp;&nbsp;1</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Constant for graphic mode. </p>
</div>
</div>
<a class="anchor" id="a70265c4f840ef78872243e91c923af2f"></a><!-- doxytag: member="lc7981.h::LCD_GRAPHIC_HEIGHT" ref="a70265c4f840ef78872243e91c923af2f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_GRAPHIC_HEIGHT&nbsp;&nbsp;&nbsp;80</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Vertical display size in pixels. </p>
</div>
</div>
<a class="anchor" id="a51e83be6f6929f2a29d5467cd937dfc6"></a><!-- doxytag: member="lc7981.h::LCD_GRAPHIC_WIDTH" ref="a51e83be6f6929f2a29d5467cd937dfc6" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_GRAPHIC_WIDTH&nbsp;&nbsp;&nbsp;160</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Horizontal display size in pixels. </p>
</div>
</div>
<a class="anchor" id="a4781e073871c6f27f89b9463ad3a4ed1"></a><!-- doxytag: member="lc7981.h::LCD_RS" ref="a4781e073871c6f27f89b9463ad3a4ed1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_RS&nbsp;&nbsp;&nbsp;PA4</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Register-Select Pin of the Display. </p>
</div>
</div>
<a class="anchor" id="a795b48274d3f80bc744a707b67fd93e9"></a><!-- doxytag: member="lc7981.h::lcd_rs_high" ref="a795b48274d3f80bc744a707b67fd93e9" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define lcd_rs_high</td>
<td>(</td>
&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;(LCD_CTRL |= (1 &lt;&lt; LCD_RS))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Set the Register-Select pin high. </p>
</div>
</div>
<a class="anchor" id="a6edb13d59460246fb4cc32ada1c9f4a8"></a><!-- doxytag: member="lc7981.h::lcd_rs_low" ref="a6edb13d59460246fb4cc32ada1c9f4a8" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define lcd_rs_low</td>
<td>(</td>
&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;(LCD_CTRL &amp;= ~(1 &lt;&lt; LCD_RS))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Set the Register-Select pin low. </p>
</div>
</div>
<a class="anchor" id="a26089a10ddd59a0dc7283c19ccc02533"></a><!-- doxytag: member="lc7981.h::LCD_RW" ref="a26089a10ddd59a0dc7283c19ccc02533" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_RW&nbsp;&nbsp;&nbsp;PA2</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Read-Write-select Pin. </p>
</div>
</div>
<a class="anchor" id="ad0ce3cd9b481370ad4de36eff08440c8"></a><!-- doxytag: member="lc7981.h::lcd_rw_high" ref="ad0ce3cd9b481370ad4de36eff08440c8" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define lcd_rw_high</td>
<td>(</td>
&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;(LCD_CTRL |= (1 &lt;&lt; LCD_RW))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Set the Read-Write-Select pin high. </p>
</div>
</div>
<a class="anchor" id="a7f5ebe0ca71b1298a7d3423850cc82b1"></a><!-- doxytag: member="lc7981.h::lcd_rw_low" ref="a7f5ebe0ca71b1298a7d3423850cc82b1" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define lcd_rw_low</td>
<td>(</td>
&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;(LCD_CTRL &amp;= ~(1 &lt;&lt; LCD_RW))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Set the Register-Select pin low. </p>
</div>
</div>
<a class="anchor" id="a90a69d37f5c80f3ded970acf2dacf4c0"></a><!-- doxytag: member="lc7981.h::LCD_TEXT" ref="a90a69d37f5c80f3ded970acf2dacf4c0" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_TEXT&nbsp;&nbsp;&nbsp;0</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Constant for text mode. </p>
</div>
</div>
<a class="anchor" id="a82f0a630f3c41b5233f2ceb07c7dd736"></a><!-- doxytag: member="lc7981.h::LCD_TEXT_COLUMNS" ref="a82f0a630f3c41b5233f2ceb07c7dd736" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_TEXT_COLUMNS&nbsp;&nbsp;&nbsp;26</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Number of columns in text mode. </p>
</div>
</div>
<a class="anchor" id="a720ef60606ac38ca3a5ab96a9c2b8168"></a><!-- doxytag: member="lc7981.h::LCD_TEXT_LINES" ref="a720ef60606ac38ca3a5ab96a9c2b8168" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_TEXT_LINES&nbsp;&nbsp;&nbsp;10</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Number of lines in text mode. </p>
</div>
</div>
<a class="anchor" id="acda2f1b1cf6310700d0d91643c40e068"></a><!-- doxytag: member="lc7981.h::PIXEL_OFF" ref="acda2f1b1cf6310700d0d91643c40e068" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PIXEL_OFF&nbsp;&nbsp;&nbsp;0</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>see lcd_plot_pixel </p>
</div>
</div>
<a class="anchor" id="aeb2d212a26da4a5a4d3231b2773023e5"></a><!-- doxytag: member="lc7981.h::PIXEL_ON" ref="aeb2d212a26da4a5a4d3231b2773023e5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PIXEL_ON&nbsp;&nbsp;&nbsp;1</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>see lcd_plot_pixel </p>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ad235a86241458b1e7b8771688bfdaf9a"></a><!-- doxytag: member="lc7981.h::lcd_clear" ref="ad235a86241458b1e7b8771688bfdaf9a" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void lcd_clear </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Clears the display by setting the whole memory to 0. </p>
</div>
</div>
<a class="anchor" id="adbf47a5efdf02367ded1ebf8f9edb5fe"></a><!-- doxytag: member="lc7981.h::lcd_gotoxy" ref="adbf47a5efdf02367ded1ebf8f9edb5fe" args="(uint8_t x, uint8_t y)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void lcd_gotoxy </td>
<td>(</td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>y</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Set the display cursor to a specific location. </p>
<p>Right now this does only work in text mode, since there's no need for it now in graphics mode. <br/>
If the x and y values are to big, the function does nothing.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>the horizontal cursorposition (starts at 0) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>the vertical cursorposition (starts at 0) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a9b18aca098d68e55bd7dd4b83f4f36e9"></a><!-- doxytag: member="lc7981.h::lcd_init" ref="a9b18aca098d68e55bd7dd4b83f4f36e9" args="(uint8_t mode)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void lcd_init </td>
<td>(</td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>mode</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>lcd_init set the to default values. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>LCD_TEXT for text mode and LCD_GRAPHIC for graphic mode </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="aa89be137ee35d3fd7e88782aafb0efdf"></a><!-- doxytag: member="lc7981.h::lcd_plot_bitmap" ref="aa89be137ee35d3fd7e88782aafb0efdf" args="(uint8_t x, uint8_t y, PGM_P bitmap, uint8_t w, uint8_t h)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void lcd_plot_bitmap </td>
<td>(</td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">PGM_P&nbsp;</td>
<td class="paramname"> <em>bitmap</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>w</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>h</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This function will plot a bitmap with the upper left corner to the given coordinates. </p>
<p><br/>
If the bitmap doesn't fit on the display at this location, nothing is drawn at all.<br/>
Unset pixels are treated as transparent <br/>
This function is by far the most tricky piece of code in this project,<br/>
don't worry if you don't understand it at first sight. <br/>
Actually it just loops bitwise through the bitmap and uses some <br/>
nice bit shifting magic to get it anywhere you want.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>horizontal position of the bitmap </td></tr>
<tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>vertical position of the bitmap </td></tr>
<tr><td valign="top"></td><td valign="top"><em>bitmap</em>&nbsp;</td><td>pointer to the bitmap in pgmspace </td></tr>
<tr><td valign="top"></td><td valign="top"><em>w</em>&nbsp;</td><td>width of the bitmap </td></tr>
<tr><td valign="top"></td><td valign="top"><em>h</em>&nbsp;</td><td>height of the bitmap</td></tr>
</table>
</dd>
</dl>
<p>This function is dedicated to Greta, one of the most important persons in my life so far.<br/>
</p>
</div>
</div>
<a class="anchor" id="a3d66dccc8324afe2e7b4cdd0970916f6"></a><!-- doxytag: member="lc7981.h::lcd_plot_char" ref="a3d66dccc8324afe2e7b4cdd0970916f6" args="(uint8_t x, uint8_t y_off, uint8_t c, uint8_t fw, uint8_t fh, PGM_P font)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void lcd_plot_char </td>
<td>(</td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>x_off</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>y_off</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>fw</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>fh</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">PGM_P&nbsp;</td>
<td class="paramname"> <em>font</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Plots a single character in graphicmode. </p>
<p>Each character of the font is stored linewise. <br/>
This means for a 8x8 Pixel font the 8 bytes are needed. <br/>
The first byte is the first line and the last byte is the last line. <br/>
The next 8byte are the next character.<br/>
<br/>
If the position is too close to the display edge so it can't be displayed completely,<br/>
It won't be displayed at all.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>x_off</em>&nbsp;</td><td>horizontal position of the character </td></tr>
<tr><td valign="top"></td><td valign="top"><em>y_off</em>&nbsp;</td><td>vertical position of the character </td></tr>
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>the character or it's ascii code </td></tr>
<tr><td valign="top"></td><td valign="top"><em>fw</em>&nbsp;</td><td>width of the font (we start counting from 0, so a 10px width font will have fw = 9) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>fh</em>&nbsp;</td><td>height of the font (we start counting from 0, so a 10px height font will have fh = 9) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>font</em>&nbsp;</td><td>pointer to the flash area where the font is stored </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ad5c555bfaeaf1a8bd547b036816881f0"></a><!-- doxytag: member="lc7981.h::lcd_plot_pgmtext" ref="ad5c555bfaeaf1a8bd547b036816881f0" args="(uint8_t x, uint8_t y_off, PGM_P text, uint8_t fw, uint8_t fh, PGM_P font)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void lcd_plot_pgmtext </td>
<td>(</td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>x_off</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>y_off</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">PGM_P&nbsp;</td>
<td class="paramname"> <em>text</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>fw</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>fh</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">PGM_P&nbsp;</td>
<td class="paramname"> <em>font</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Plots a text using lcd_plot_char. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>x_off</em>&nbsp;</td><td>horizontal position of the character </td></tr>
<tr><td valign="top"></td><td valign="top"><em>y_off</em>&nbsp;</td><td>vertical position of the character </td></tr>
<tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>flash area where the text is stored </td></tr>
<tr><td valign="top"></td><td valign="top"><em>fw</em>&nbsp;</td><td>width of the font (we start counting from 0, so a 10px width font will have fw = 9) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>fh</em>&nbsp;</td><td>height of the font (we start counting from 0, so a 10px height font will have fh = 9) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>font</em>&nbsp;</td><td>pointer to the flash area where the font is stored</td></tr>
</table>
</dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="lc7981_8h.html#a3d66dccc8324afe2e7b4cdd0970916f6" title="Plots a single character in graphicmode.">lcd_plot_char</a> </dd>
<dd>
<a class="el" href="lc7981_8h.html#a0a47b2eaae0a5e028c0065e945147aed" title="Plots a text using lcd_plot_char.">lcd_plot_text</a> </dd></dl>
</div>
</div>
<a class="anchor" id="a735111507ed83172f58d5af2953e31c6"></a><!-- doxytag: member="lc7981.h::lcd_plot_pixel" ref="a735111507ed83172f58d5af2953e31c6" args="(uint8_t x, uint8_t y, uint8_t set)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void lcd_plot_pixel </td>
<td>(</td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>set</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>set or unset a pixel at the specified location </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>horizontal position of the pixel (starts at 0) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>horizontal position of the pixel (starts at 0) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>set</em>&nbsp;</td><td>can be PIXEL_ON or PIXEL_OFF </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a0a47b2eaae0a5e028c0065e945147aed"></a><!-- doxytag: member="lc7981.h::lcd_plot_text" ref="a0a47b2eaae0a5e028c0065e945147aed" args="(uint8_t x, uint8_t y_off, const char *text, uint8_t fw, uint8_t fh, PGM_P font)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void lcd_plot_text </td>
<td>(</td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>x_off</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>y_off</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>text</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>fw</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>fh</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">PGM_P&nbsp;</td>
<td class="paramname"> <em>font</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Plots a text using lcd_plot_char. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>x_off</em>&nbsp;</td><td>horizontal position of the character </td></tr>
<tr><td valign="top"></td><td valign="top"><em>y_off</em>&nbsp;</td><td>vertical position of the character </td></tr>
<tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>the text that is plotted </td></tr>
<tr><td valign="top"></td><td valign="top"><em>fw</em>&nbsp;</td><td>width of the font (we start counting from 0, so a 10px width font will have fw = 9) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>fh</em>&nbsp;</td><td>height of the font (we start counting from 0, so a 10px height font will have fh = 9) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>font</em>&nbsp;</td><td>pointer to the flash area where the font is stored</td></tr>
</table>
</dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="lc7981_8h.html#a3d66dccc8324afe2e7b4cdd0970916f6" title="Plots a single character in graphicmode.">lcd_plot_char</a> </dd></dl>
</div>
</div>
<a class="anchor" id="a2753ae63b5b2e212d5dc101749b76249"></a><!-- doxytag: member="lc7981.h::lcd_read_byte" ref="a2753ae63b5b2e212d5dc101749b76249" args="(uint16_t pos)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static uint8_t lcd_read_byte </td>
<td>(</td>
<td class="paramtype">uint16_t&nbsp;</td>
<td class="paramname"> <em>pos</em></td>
<td>&nbsp;)&nbsp;</td>
<td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reads a byte from the display memory. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>pos</em>&nbsp;</td><td>16bit address for display memory </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the byte which has been read </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="lc7981_8h.html#adbf47a5efdf02367ded1ebf8f9edb5fe" title="Set the display cursor to a specific location.">lcd_gotoxy</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ae6e048011d567dd2859901544ebf7051"></a><!-- doxytag: member="lc7981.h::lcd_strobe" ref="ae6e048011d567dd2859901544ebf7051" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static void lcd_strobe </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Generates the strobe signal for writing data. </p>
<p>This function is meant for internal usage only. </p>
</div>
</div>
<a class="anchor" id="a9f832e526c77af56c35ff22032d934e7"></a><!-- doxytag: member="lc7981.h::lcd_write_byte" ref="a9f832e526c77af56c35ff22032d934e7" args="(uint16_t pos, uint8_t byte)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static void lcd_write_byte </td>
<td>(</td>
<td class="paramtype">uint16_t&nbsp;</td>
<td class="paramname"> <em>pos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>byte</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a31db85f1f48f4802c24218bc165ea4e1"></a><!-- doxytag: member="lc7981.h::lcd_write_command" ref="a31db85f1f48f4802c24218bc165ea4e1" args="(uint8_t cmd, uint8_t data)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static void lcd_write_command </td>
<td>(</td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>cmd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&nbsp;</td>
<td class="paramname"> <em>data</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Writes a command and a data byte to the lcd. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>cmd</em>&nbsp;</td><td>the command byte </td></tr>
<tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>the data that is going to be written after the command </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a30251238a49999658455fdb0233757fb"></a><!-- doxytag: member="lc7981.h::lcd_write_text" ref="a30251238a49999658455fdb0233757fb" args="(char *txt)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void lcd_write_text </td>
<td>(</td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>txt</em></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Outputs text in at the current cursor position. </p>
<p>If a \n occurs in the last line of the display, all the other line will be 'scrolled' up. This function is textmode only. The the second line becomes the first, the third the second and so on ... </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>txt</em>&nbsp;</td><td>the text </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on 27 Jun 2010 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>