sources from initial AVR turn-on for TeleTerra
[fw/altos] / avr / tmp / group__pfleury__lcd.html
diff --git a/avr/tmp/group__pfleury__lcd.html b/avr/tmp/group__pfleury__lcd.html
new file mode 100644 (file)
index 0000000..ddfffb0
--- /dev/null
@@ -0,0 +1,1174 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>AVR-GCC libraries: LCD library</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.4.5 -->
+<h1>LCD library</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+Basic routines for interfacing a HD44780U-based text LCD display. 
+<p>
+<div class="fragment"><pre class="fragment"><span class="preprocessor"> #include &lt;lcd.h&gt;</span> 
+</pre></div><p>
+Originally based on Volker Oth's LCD library, changed <a class="el" href="group__pfleury__lcd.html#gedadae82796028f0eb4877c2633a2093">lcd_init()</a>, added additional constants for <a class="el" href="group__pfleury__lcd.html#gc6aa7e0d522b4c013ebeae1ccd23d510">lcd_command()</a>, added 4-bit I/O mode, improved and optimized code.<p>
+Library can be operated in memory mapped mode (LCD_IO_MODE=0) or in 4-bit IO port mode (LCD_IO_MODE=1). 8-bit IO port mode not supported.<p>
+Memory mapped mode compatible with Kanda STK200, but supports also generation of R/W signal through A8 address line.<p>
+<dl compact><dt><b>Author:</b></dt><dd>Peter Fleury <a href="mailto:pfleury@gmx.ch">pfleury@gmx.ch</a> <a href="http://jump.to/fleury">http://jump.to/fleury</a></dd></dl>
+<dl compact><dt><b>See also:</b></dt><dd>The chapter <a href="http://homepage.sunrise.ch/mysunrise/peterfleury/avr-lcd44780.html" target="_blank">Interfacing a HD44780 Based LCD to an AVR</a> on my home page. </dd></dl>
+
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Definitions for MCU Clock Frequency</h2></td></tr>
+<tr><td colspan="2">Adapt the MCU clock frequency in Hz to your target. <br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#gec4e68f6eb4f2cd1a3d52a391e97a48e">XTAL</a>&nbsp;&nbsp;&nbsp;4000000</td></tr>
+
+<tr><td colspan="2"><br><h2>Definition for LCD controller type</h2></td></tr>
+<tr><td colspan="2">Use 0 for HD44780 controller, change to 1 for displays with KS0073 controller. <br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#ga06e40df758f5c4ef912269bada3e02e">LCD_CONTROLLER_KS0073</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+
+<tr><td colspan="2"><br><h2>Definitions for Display Size</h2></td></tr>
+<tr><td colspan="2">Change these definitions to adapt setting to your display <br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#gdd844875f979e4be3fe10f6157fb1000">LCD_LINES</a>&nbsp;&nbsp;&nbsp;2</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#gf43f4243eab72a4f63404ef79c4628b4">LCD_DISP_LENGTH</a>&nbsp;&nbsp;&nbsp;16</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g9c510a31cc0da22f1ed6796c182e5ae9">LCD_LINE_LENGTH</a>&nbsp;&nbsp;&nbsp;0x40</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g0f8269b98efeb53a53e31ad5b2671e60">LCD_START_LINE1</a>&nbsp;&nbsp;&nbsp;0x00</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g41302f6ca93d24281422eb6b21d29ead">LCD_START_LINE2</a>&nbsp;&nbsp;&nbsp;0x40</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g71379f62a63fec1d3548572efb619b25">LCD_START_LINE3</a>&nbsp;&nbsp;&nbsp;0x14</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g73e09d62eefad16f08b66ee39e9c2a92">LCD_START_LINE4</a>&nbsp;&nbsp;&nbsp;0x54</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g9edda67caf57a323972fa8442863dd5f">LCD_WRAP_LINES</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g03ce9159a9bc9263b65926df0e542769">LCD_IO_MODE</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td colspan="2"><br><h2>Definitions for 4-bit IO mode</h2></td></tr>
+<tr><td colspan="2">Change LCD_PORT if you want to use a different port for the LCD pins.<p>
+The four LCD data lines and the three control lines RS, RW, E can be on the same port or on different ports. Change LCD_RS_PORT, LCD_RW_PORT, LCD_E_PORT if you want the control lines on different ports.<p>
+Normally the four data lines should be mapped to bit 0..3 on one port, but it is possible to connect these data lines in different order or even on different ports by adapting the LCD_DATAx_PORT and LCD_DATAx_PIN definitions. <br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#ge794cd77f52c76793895fb9f0ddde790">LCD_PORT</a>&nbsp;&nbsp;&nbsp;PORTA</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#gea0b0c8e6f06c7978b062f9b64c65b17">LCD_DATA0_PORT</a>&nbsp;&nbsp;&nbsp;LCD_PORT</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g4804194d2e51913e96a18540ecc37438">LCD_DATA1_PORT</a>&nbsp;&nbsp;&nbsp;LCD_PORT</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g457dfaa137d806b907824c5addff463b">LCD_DATA2_PORT</a>&nbsp;&nbsp;&nbsp;LCD_PORT</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#gb83bd18a43ac793d7f83251664b76102">LCD_DATA3_PORT</a>&nbsp;&nbsp;&nbsp;LCD_PORT</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g1bd9e368dd03e4e4022e2fe4349b4a89">LCD_DATA0_PIN</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#gc22ea9521de145ada64c9ac4a24a0d57">LCD_DATA1_PIN</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#gef2c79ad5069e1dbcf99129953fef99f">LCD_DATA2_PIN</a>&nbsp;&nbsp;&nbsp;2</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g2b7c15d3b71de014dffbed911999e93e">LCD_DATA3_PIN</a>&nbsp;&nbsp;&nbsp;3</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#gfa2314e7d8033e0aca5769380a3e50d0">LCD_RS_PORT</a>&nbsp;&nbsp;&nbsp;LCD_PORT</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g59c1b674dce414b68c455f1ac2b4b6fc">LCD_RS_PIN</a>&nbsp;&nbsp;&nbsp;4</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#gd73977cd6182ec6efadc7798792a65f5">LCD_RW_PORT</a>&nbsp;&nbsp;&nbsp;LCD_PORT</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g8ab664d4eccaeb33a3cad2ae59c04f8c">LCD_RW_PIN</a>&nbsp;&nbsp;&nbsp;5</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g0e04d67ce381ed95c8589838110c1654">LCD_E_PORT</a>&nbsp;&nbsp;&nbsp;LCD_PORT</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#gb3c58eb57ae653b281826d6e694d9be6">LCD_E_PIN</a>&nbsp;&nbsp;&nbsp;6</td></tr>
+
+<tr><td colspan="2"><br><h2>Definitions for LCD command instructions</h2></td></tr>
+<tr><td colspan="2">The constants define the various LCD controller instructions which can be passed to the function <a class="el" href="group__pfleury__lcd.html#gc6aa7e0d522b4c013ebeae1ccd23d510">lcd_command()</a>, see HD44780 data sheet for a complete description. <br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb6c0647d4002249e52055ce4a5e1b6e2"></a><!-- doxytag: member="pfleury_lcd::LCD_CLR" ref="gb6c0647d4002249e52055ce4a5e1b6e2" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_CLR</b>&nbsp;&nbsp;&nbsp;0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6ad700e4d3900d4feb8238bfc479834c"></a><!-- doxytag: member="pfleury_lcd::LCD_HOME" ref="g6ad700e4d3900d4feb8238bfc479834c" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_HOME</b>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g93ccf8edc829179b43b6eeacc66b1bb4"></a><!-- doxytag: member="pfleury_lcd::LCD_ENTRY_MODE" ref="g93ccf8edc829179b43b6eeacc66b1bb4" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_ENTRY_MODE</b>&nbsp;&nbsp;&nbsp;2</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9e4e5cb2b07761ade7cd43505209663a"></a><!-- doxytag: member="pfleury_lcd::LCD_ENTRY_INC" ref="g9e4e5cb2b07761ade7cd43505209663a" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_ENTRY_INC</b>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g8b0e6ed593e7541f4166c1a906b95582"></a><!-- doxytag: member="pfleury_lcd::LCD_ENTRY_SHIFT" ref="g8b0e6ed593e7541f4166c1a906b95582" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_ENTRY_SHIFT</b>&nbsp;&nbsp;&nbsp;0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gdfb5192d28256bba56eab1ca052b744f"></a><!-- doxytag: member="pfleury_lcd::LCD_ON" ref="gdfb5192d28256bba56eab1ca052b744f" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_ON</b>&nbsp;&nbsp;&nbsp;3</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g31e7b1de3a2d43284c580be46120d796"></a><!-- doxytag: member="pfleury_lcd::LCD_ON_DISPLAY" ref="g31e7b1de3a2d43284c580be46120d796" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_ON_DISPLAY</b>&nbsp;&nbsp;&nbsp;2</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5e026efe1f4b830b1b300a3c2c84d8f5"></a><!-- doxytag: member="pfleury_lcd::LCD_ON_CURSOR" ref="g5e026efe1f4b830b1b300a3c2c84d8f5" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_ON_CURSOR</b>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gdb8db7b10a3d88b3ed3a751ec12f1eca"></a><!-- doxytag: member="pfleury_lcd::LCD_ON_BLINK" ref="gdb8db7b10a3d88b3ed3a751ec12f1eca" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_ON_BLINK</b>&nbsp;&nbsp;&nbsp;0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf252c05493bd664537aaa51bf87814ec"></a><!-- doxytag: member="pfleury_lcd::LCD_MOVE" ref="gf252c05493bd664537aaa51bf87814ec" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_MOVE</b>&nbsp;&nbsp;&nbsp;4</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g20ea24786f22d84ba9c55554656906c5"></a><!-- doxytag: member="pfleury_lcd::LCD_MOVE_DISP" ref="g20ea24786f22d84ba9c55554656906c5" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_MOVE_DISP</b>&nbsp;&nbsp;&nbsp;3</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1ab47ab95dd06eaccf3e9e86af71c3ac"></a><!-- doxytag: member="pfleury_lcd::LCD_MOVE_RIGHT" ref="g1ab47ab95dd06eaccf3e9e86af71c3ac" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_MOVE_RIGHT</b>&nbsp;&nbsp;&nbsp;2</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0dccc76f0fdb0ca0e92a27957be7508a"></a><!-- doxytag: member="pfleury_lcd::LCD_FUNCTION" ref="g0dccc76f0fdb0ca0e92a27957be7508a" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_FUNCTION</b>&nbsp;&nbsp;&nbsp;5</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g53db2a601db03c8f1744ef409de195e3"></a><!-- doxytag: member="pfleury_lcd::LCD_FUNCTION_8BIT" ref="g53db2a601db03c8f1744ef409de195e3" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_FUNCTION_8BIT</b>&nbsp;&nbsp;&nbsp;4</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9df9d601b91e8dd1c8e32cc0502fa18d"></a><!-- doxytag: member="pfleury_lcd::LCD_FUNCTION_2LINES" ref="g9df9d601b91e8dd1c8e32cc0502fa18d" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_FUNCTION_2LINES</b>&nbsp;&nbsp;&nbsp;3</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g24097bc7d02a539b90143681a1d8f75b"></a><!-- doxytag: member="pfleury_lcd::LCD_FUNCTION_10DOTS" ref="g24097bc7d02a539b90143681a1d8f75b" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_FUNCTION_10DOTS</b>&nbsp;&nbsp;&nbsp;2</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge5fa6d906e12c59745a752025562f10f"></a><!-- doxytag: member="pfleury_lcd::LCD_CGRAM" ref="ge5fa6d906e12c59745a752025562f10f" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_CGRAM</b>&nbsp;&nbsp;&nbsp;6</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g8151d4f3782bf89da0c02763a5338b17"></a><!-- doxytag: member="pfleury_lcd::LCD_DDRAM" ref="g8151d4f3782bf89da0c02763a5338b17" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_DDRAM</b>&nbsp;&nbsp;&nbsp;7</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g49711195a2017d6c172207b062c7b73e"></a><!-- doxytag: member="pfleury_lcd::LCD_BUSY" ref="g49711195a2017d6c172207b062c7b73e" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_BUSY</b>&nbsp;&nbsp;&nbsp;7</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0218e18af67bef527a29f1cdacf6ed23"></a><!-- doxytag: member="pfleury_lcd::LCD_ENTRY_DEC" ref="g0218e18af67bef527a29f1cdacf6ed23" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_ENTRY_DEC</b>&nbsp;&nbsp;&nbsp;0x04</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g11b45d9f793a2140fd0ee4fce7a0ee22"></a><!-- doxytag: member="pfleury_lcd::LCD_ENTRY_DEC_SHIFT" ref="g11b45d9f793a2140fd0ee4fce7a0ee22" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_ENTRY_DEC_SHIFT</b>&nbsp;&nbsp;&nbsp;0x05</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge3aa1687fedc3b8bc430b4cd62c2b65f"></a><!-- doxytag: member="pfleury_lcd::LCD_ENTRY_INC_" ref="ge3aa1687fedc3b8bc430b4cd62c2b65f" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_ENTRY_INC_</b>&nbsp;&nbsp;&nbsp;0x06</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7bea23e46d4d98baa5a6a6025f42b6a4"></a><!-- doxytag: member="pfleury_lcd::LCD_ENTRY_INC_SHIFT" ref="g7bea23e46d4d98baa5a6a6025f42b6a4" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_ENTRY_INC_SHIFT</b>&nbsp;&nbsp;&nbsp;0x07</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g70be76fe01084c867429994240faa1f6"></a><!-- doxytag: member="pfleury_lcd::LCD_DISP_OFF" ref="g70be76fe01084c867429994240faa1f6" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_DISP_OFF</b>&nbsp;&nbsp;&nbsp;0x08</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf0363f2f2b78a61362f26ffa36082185"></a><!-- doxytag: member="pfleury_lcd::LCD_DISP_ON" ref="gf0363f2f2b78a61362f26ffa36082185" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_DISP_ON</b>&nbsp;&nbsp;&nbsp;0x0C</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6b85df16a93c2d89f1710b143a868396"></a><!-- doxytag: member="pfleury_lcd::LCD_DISP_ON_BLINK" ref="g6b85df16a93c2d89f1710b143a868396" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_DISP_ON_BLINK</b>&nbsp;&nbsp;&nbsp;0x0D</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge6fa09e0ec80308708e64a47b6e280d2"></a><!-- doxytag: member="pfleury_lcd::LCD_DISP_ON_CURSOR" ref="ge6fa09e0ec80308708e64a47b6e280d2" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_DISP_ON_CURSOR</b>&nbsp;&nbsp;&nbsp;0x0E</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3780da6ba5a65681b1387aa848cffa55"></a><!-- doxytag: member="pfleury_lcd::LCD_DISP_ON_CURSOR_BLINK" ref="g3780da6ba5a65681b1387aa848cffa55" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_DISP_ON_CURSOR_BLINK</b>&nbsp;&nbsp;&nbsp;0x0F</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gfe51acc36fd10fa81e99decbba5bb43e"></a><!-- doxytag: member="pfleury_lcd::LCD_MOVE_CURSOR_LEFT" ref="gfe51acc36fd10fa81e99decbba5bb43e" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_MOVE_CURSOR_LEFT</b>&nbsp;&nbsp;&nbsp;0x10</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf06593b9d62c0a089da3be7ece318924"></a><!-- doxytag: member="pfleury_lcd::LCD_MOVE_CURSOR_RIGHT" ref="gf06593b9d62c0a089da3be7ece318924" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_MOVE_CURSOR_RIGHT</b>&nbsp;&nbsp;&nbsp;0x14</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g31f91b811a964c619651d3411a8d3d06"></a><!-- doxytag: member="pfleury_lcd::LCD_MOVE_DISP_LEFT" ref="g31f91b811a964c619651d3411a8d3d06" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_MOVE_DISP_LEFT</b>&nbsp;&nbsp;&nbsp;0x18</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g938816ca2abf6e8dc905ac68f14519f3"></a><!-- doxytag: member="pfleury_lcd::LCD_MOVE_DISP_RIGHT" ref="g938816ca2abf6e8dc905ac68f14519f3" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_MOVE_DISP_RIGHT</b>&nbsp;&nbsp;&nbsp;0x1C</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc125eb9d5126f90422ea742d8734e4f8"></a><!-- doxytag: member="pfleury_lcd::LCD_FUNCTION_4BIT_1LINE" ref="gc125eb9d5126f90422ea742d8734e4f8" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_FUNCTION_4BIT_1LINE</b>&nbsp;&nbsp;&nbsp;0x20</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2d2e1f64c83dba34822c089cd819634d"></a><!-- doxytag: member="pfleury_lcd::LCD_FUNCTION_4BIT_2LINES" ref="g2d2e1f64c83dba34822c089cd819634d" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_FUNCTION_4BIT_2LINES</b>&nbsp;&nbsp;&nbsp;0x28</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g8a2a4b7457b1677bbc12d4f182f5ee62"></a><!-- doxytag: member="pfleury_lcd::LCD_FUNCTION_8BIT_1LINE" ref="g8a2a4b7457b1677bbc12d4f182f5ee62" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_FUNCTION_8BIT_1LINE</b>&nbsp;&nbsp;&nbsp;0x30</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g13ba9324b1abe30dcbadf52ee33e1e12"></a><!-- doxytag: member="pfleury_lcd::LCD_FUNCTION_8BIT_2LINES" ref="g13ba9324b1abe30dcbadf52ee33e1e12" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_FUNCTION_8BIT_2LINES</b>&nbsp;&nbsp;&nbsp;0x38</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2bc1f4b4aa9d922621728695154608e8"></a><!-- doxytag: member="pfleury_lcd::LCD_MODE_DEFAULT" ref="g2bc1f4b4aa9d922621728695154608e8" args="" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>LCD_MODE_DEFAULT</b>&nbsp;&nbsp;&nbsp;((1&lt;&lt;LCD_ENTRY_MODE) | (1&lt;&lt;LCD_ENTRY_INC) )</td></tr>
+
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gd33c0d74b983e3f2c36f3278a462be15"></a><!-- doxytag: member="pfleury_lcd::lcd_puts_P" ref="gd33c0d74b983e3f2c36f3278a462be15" args="(__s)" -->
+#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#gd33c0d74b983e3f2c36f3278a462be15">lcd_puts_P</a>(__s)&nbsp;&nbsp;&nbsp;lcd_puts_p(PSTR(__s))</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">macros for automatically storing string constant in program memory <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#gedadae82796028f0eb4877c2633a2093">lcd_init</a> (uint8_t dispAttr)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize display and select type of cursor.  <a href="#gedadae82796028f0eb4877c2633a2093"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g8ce9a86fc5c8256c69bd46bf3400db82">lcd_clrscr</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clear display and set cursor to home position.  <a href="#g8ce9a86fc5c8256c69bd46bf3400db82"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#ge8c9b2ccaad9f50e5470c0884d34b60e">lcd_home</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set cursor to home position.  <a href="#ge8c9b2ccaad9f50e5470c0884d34b60e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g73662ce31ffdf2949971f47d61fbf67f">lcd_gotoxy</a> (uint8_t x, uint8_t y)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set cursor to specified position.  <a href="#g73662ce31ffdf2949971f47d61fbf67f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g38d1e9ef5cebc368b96f5a3173b1a8a6">lcd_putc</a> (char c)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Display character at current cursor position.  <a href="#g38d1e9ef5cebc368b96f5a3173b1a8a6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g72e72f6b31f53d9ceb9246286223599a">lcd_puts</a> (const char *s)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Display string without auto linefeed.  <a href="#g72e72f6b31f53d9ceb9246286223599a"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#gd7760569f1a160fca1a29af711cab47b">lcd_puts_p</a> (const char *progmem_s)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Display string from program memory without auto linefeed.  <a href="#gd7760569f1a160fca1a29af711cab47b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#gc6aa7e0d522b4c013ebeae1ccd23d510">lcd_command</a> (uint8_t cmd)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send LCD controller instruction command.  <a href="#gc6aa7e0d522b4c013ebeae1ccd23d510"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pfleury__lcd.html#g5558061811c21afc4fe3992a45e43844">lcd_data</a> (uint8_t data)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send data byte to LCD controller.  <a href="#g5558061811c21afc4fe3992a45e43844"></a><br></td></tr>
+</table>
+<hr><h2>Define Documentation</h2>
+<a class="anchor" name="gec4e68f6eb4f2cd1a3d52a391e97a48e"></a><!-- doxytag: member="lcd.h::XTAL" ref="gec4e68f6eb4f2cd1a3d52a391e97a48e" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define XTAL&nbsp;&nbsp;&nbsp;4000000          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+clock frequency in Hz, used to calculate delay timer     </td>
+  </tr>
+</table>
+<a class="anchor" name="ga06e40df758f5c4ef912269bada3e02e"></a><!-- doxytag: member="lcd.h::LCD_CONTROLLER_KS0073" ref="ga06e40df758f5c4ef912269bada3e02e" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_CONTROLLER_KS0073&nbsp;&nbsp;&nbsp;0          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Use 0 for HD44780 controller, 1 for KS0073 controller     </td>
+  </tr>
+</table>
+<a class="anchor" name="gdd844875f979e4be3fe10f6157fb1000"></a><!-- doxytag: member="lcd.h::LCD_LINES" ref="gdd844875f979e4be3fe10f6157fb1000" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_LINES&nbsp;&nbsp;&nbsp;2          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+number of visible lines of the display     </td>
+  </tr>
+</table>
+<a class="anchor" name="gf43f4243eab72a4f63404ef79c4628b4"></a><!-- doxytag: member="lcd.h::LCD_DISP_LENGTH" ref="gf43f4243eab72a4f63404ef79c4628b4" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_DISP_LENGTH&nbsp;&nbsp;&nbsp;16          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+visibles characters per line of the display     </td>
+  </tr>
+</table>
+<a class="anchor" name="g9c510a31cc0da22f1ed6796c182e5ae9"></a><!-- doxytag: member="lcd.h::LCD_LINE_LENGTH" ref="g9c510a31cc0da22f1ed6796c182e5ae9" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_LINE_LENGTH&nbsp;&nbsp;&nbsp;0x40          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+internal line length of the display     </td>
+  </tr>
+</table>
+<a class="anchor" name="g0f8269b98efeb53a53e31ad5b2671e60"></a><!-- doxytag: member="lcd.h::LCD_START_LINE1" ref="g0f8269b98efeb53a53e31ad5b2671e60" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_START_LINE1&nbsp;&nbsp;&nbsp;0x00          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+DDRAM address of first char of line 1     </td>
+  </tr>
+</table>
+<a class="anchor" name="g41302f6ca93d24281422eb6b21d29ead"></a><!-- doxytag: member="lcd.h::LCD_START_LINE2" ref="g41302f6ca93d24281422eb6b21d29ead" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_START_LINE2&nbsp;&nbsp;&nbsp;0x40          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+DDRAM address of first char of line 2     </td>
+  </tr>
+</table>
+<a class="anchor" name="g71379f62a63fec1d3548572efb619b25"></a><!-- doxytag: member="lcd.h::LCD_START_LINE3" ref="g71379f62a63fec1d3548572efb619b25" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_START_LINE3&nbsp;&nbsp;&nbsp;0x14          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+DDRAM address of first char of line 3     </td>
+  </tr>
+</table>
+<a class="anchor" name="g73e09d62eefad16f08b66ee39e9c2a92"></a><!-- doxytag: member="lcd.h::LCD_START_LINE4" ref="g73e09d62eefad16f08b66ee39e9c2a92" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_START_LINE4&nbsp;&nbsp;&nbsp;0x54          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+DDRAM address of first char of line 4     </td>
+  </tr>
+</table>
+<a class="anchor" name="g9edda67caf57a323972fa8442863dd5f"></a><!-- doxytag: member="lcd.h::LCD_WRAP_LINES" ref="g9edda67caf57a323972fa8442863dd5f" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_WRAP_LINES&nbsp;&nbsp;&nbsp;0          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+0: no wrap, 1: wrap at end of visibile line     </td>
+  </tr>
+</table>
+<a class="anchor" name="g03ce9159a9bc9263b65926df0e542769"></a><!-- doxytag: member="lcd.h::LCD_IO_MODE" ref="g03ce9159a9bc9263b65926df0e542769" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_IO_MODE&nbsp;&nbsp;&nbsp;1          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+0: memory mapped mode, 1: IO port mode     </td>
+  </tr>
+</table>
+<a class="anchor" name="ge794cd77f52c76793895fb9f0ddde790"></a><!-- doxytag: member="lcd.h::LCD_PORT" ref="ge794cd77f52c76793895fb9f0ddde790" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_PORT&nbsp;&nbsp;&nbsp;PORTA          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+port for the LCD lines     </td>
+  </tr>
+</table>
+<a class="anchor" name="gea0b0c8e6f06c7978b062f9b64c65b17"></a><!-- doxytag: member="lcd.h::LCD_DATA0_PORT" ref="gea0b0c8e6f06c7978b062f9b64c65b17" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_DATA0_PORT&nbsp;&nbsp;&nbsp;LCD_PORT          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+port for 4bit data bit 0     </td>
+  </tr>
+</table>
+<a class="anchor" name="g4804194d2e51913e96a18540ecc37438"></a><!-- doxytag: member="lcd.h::LCD_DATA1_PORT" ref="g4804194d2e51913e96a18540ecc37438" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_DATA1_PORT&nbsp;&nbsp;&nbsp;LCD_PORT          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+port for 4bit data bit 1     </td>
+  </tr>
+</table>
+<a class="anchor" name="g457dfaa137d806b907824c5addff463b"></a><!-- doxytag: member="lcd.h::LCD_DATA2_PORT" ref="g457dfaa137d806b907824c5addff463b" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_DATA2_PORT&nbsp;&nbsp;&nbsp;LCD_PORT          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+port for 4bit data bit 2     </td>
+  </tr>
+</table>
+<a class="anchor" name="gb83bd18a43ac793d7f83251664b76102"></a><!-- doxytag: member="lcd.h::LCD_DATA3_PORT" ref="gb83bd18a43ac793d7f83251664b76102" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_DATA3_PORT&nbsp;&nbsp;&nbsp;LCD_PORT          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+port for 4bit data bit 3     </td>
+  </tr>
+</table>
+<a class="anchor" name="g1bd9e368dd03e4e4022e2fe4349b4a89"></a><!-- doxytag: member="lcd.h::LCD_DATA0_PIN" ref="g1bd9e368dd03e4e4022e2fe4349b4a89" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_DATA0_PIN&nbsp;&nbsp;&nbsp;0          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+pin for 4bit data bit 0     </td>
+  </tr>
+</table>
+<a class="anchor" name="gc22ea9521de145ada64c9ac4a24a0d57"></a><!-- doxytag: member="lcd.h::LCD_DATA1_PIN" ref="gc22ea9521de145ada64c9ac4a24a0d57" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_DATA1_PIN&nbsp;&nbsp;&nbsp;1          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+pin for 4bit data bit 1     </td>
+  </tr>
+</table>
+<a class="anchor" name="gef2c79ad5069e1dbcf99129953fef99f"></a><!-- doxytag: member="lcd.h::LCD_DATA2_PIN" ref="gef2c79ad5069e1dbcf99129953fef99f" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_DATA2_PIN&nbsp;&nbsp;&nbsp;2          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+pin for 4bit data bit 2     </td>
+  </tr>
+</table>
+<a class="anchor" name="g2b7c15d3b71de014dffbed911999e93e"></a><!-- doxytag: member="lcd.h::LCD_DATA3_PIN" ref="g2b7c15d3b71de014dffbed911999e93e" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_DATA3_PIN&nbsp;&nbsp;&nbsp;3          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+pin for 4bit data bit 3     </td>
+  </tr>
+</table>
+<a class="anchor" name="gfa2314e7d8033e0aca5769380a3e50d0"></a><!-- doxytag: member="lcd.h::LCD_RS_PORT" ref="gfa2314e7d8033e0aca5769380a3e50d0" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_RS_PORT&nbsp;&nbsp;&nbsp;LCD_PORT          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+port for RS line     </td>
+  </tr>
+</table>
+<a class="anchor" name="g59c1b674dce414b68c455f1ac2b4b6fc"></a><!-- doxytag: member="lcd.h::LCD_RS_PIN" ref="g59c1b674dce414b68c455f1ac2b4b6fc" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_RS_PIN&nbsp;&nbsp;&nbsp;4          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+pin for RS line     </td>
+  </tr>
+</table>
+<a class="anchor" name="gd73977cd6182ec6efadc7798792a65f5"></a><!-- doxytag: member="lcd.h::LCD_RW_PORT" ref="gd73977cd6182ec6efadc7798792a65f5" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_RW_PORT&nbsp;&nbsp;&nbsp;LCD_PORT          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+port for RW line     </td>
+  </tr>
+</table>
+<a class="anchor" name="g8ab664d4eccaeb33a3cad2ae59c04f8c"></a><!-- doxytag: member="lcd.h::LCD_RW_PIN" ref="g8ab664d4eccaeb33a3cad2ae59c04f8c" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_RW_PIN&nbsp;&nbsp;&nbsp;5          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+pin for RW line     </td>
+  </tr>
+</table>
+<a class="anchor" name="g0e04d67ce381ed95c8589838110c1654"></a><!-- doxytag: member="lcd.h::LCD_E_PORT" ref="g0e04d67ce381ed95c8589838110c1654" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_E_PORT&nbsp;&nbsp;&nbsp;LCD_PORT          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+port for Enable line     </td>
+  </tr>
+</table>
+<a class="anchor" name="gb3c58eb57ae653b281826d6e694d9be6"></a><!-- doxytag: member="lcd.h::LCD_E_PIN" ref="gb3c58eb57ae653b281826d6e694d9be6" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define LCD_E_PIN&nbsp;&nbsp;&nbsp;6          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+pin for Enable line     </td>
+  </tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="gedadae82796028f0eb4877c2633a2093"></a><!-- doxytag: member="lcd.h::lcd_init" ref="gedadae82796028f0eb4877c2633a2093" args="(uint8_t dispAttr)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void lcd_init           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">uint8_t&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>dispAttr</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Initialize display and select type of cursor. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>dispAttr</em>&nbsp;</td><td><b>LCD_DISP_OFF</b> display off<br>
+ <b>LCD_DISP_ON</b> display on, cursor off<br>
+ <b>LCD_DISP_ON_CURSOR</b> display on, cursor on<br>
+ <b>LCD_DISP_ON_CURSOR_BLINK</b> display on, cursor on flashing </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>none </dd></dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="g8ce9a86fc5c8256c69bd46bf3400db82"></a><!-- doxytag: member="lcd.h::lcd_clrscr" ref="g8ce9a86fc5c8256c69bd46bf3400db82" args="(void)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void lcd_clrscr           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Clear display and set cursor to home position. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>none </dd></dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="ge8c9b2ccaad9f50e5470c0884d34b60e"></a><!-- doxytag: member="lcd.h::lcd_home" ref="ge8c9b2ccaad9f50e5470c0884d34b60e" args="(void)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void lcd_home           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Set cursor to home position. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>none </dd></dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="g73662ce31ffdf2949971f47d61fbf67f"></a><!-- doxytag: member="lcd.h::lcd_gotoxy" ref="g73662ce31ffdf2949971f47d61fbf67f" args="(uint8_t x, uint8_t y)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void lcd_gotoxy           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">uint8_t&nbsp;</td>
+          <td class="mdname" nowrap> <em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>uint8_t&nbsp;</td>
+          <td class="mdname" nowrap> <em>y</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Set cursor to specified position. 
+<p>
+<dl compact><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<br>
+ (0: left most position) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>vertical position<br>
+ (0: first line) </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>none </dd></dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="g38d1e9ef5cebc368b96f5a3173b1a8a6"></a><!-- doxytag: member="lcd.h::lcd_putc" ref="g38d1e9ef5cebc368b96f5a3173b1a8a6" args="(char c)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void lcd_putc           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">char&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>c</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Display character at current cursor position. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>character to be displayed </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>none </dd></dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="g72e72f6b31f53d9ceb9246286223599a"></a><!-- doxytag: member="lcd.h::lcd_puts" ref="g72e72f6b31f53d9ceb9246286223599a" args="(const char *s)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void lcd_puts           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const char *&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>s</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Display string without auto linefeed. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>string to be displayed </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>none </dd></dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="gd7760569f1a160fca1a29af711cab47b"></a><!-- doxytag: member="lcd.h::lcd_puts_p" ref="gd7760569f1a160fca1a29af711cab47b" args="(const char *progmem_s)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void lcd_puts_p           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const char *&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>progmem_s</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Display string from program memory without auto linefeed. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>string from program memory be be displayed </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>none </dd></dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__pfleury__lcd.html#gd33c0d74b983e3f2c36f3278a462be15">lcd_puts_P</a> </dd></dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="gc6aa7e0d522b4c013ebeae1ccd23d510"></a><!-- doxytag: member="lcd.h::lcd_command" ref="gc6aa7e0d522b4c013ebeae1ccd23d510" args="(uint8_t cmd)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void lcd_command           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">uint8_t&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>cmd</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Send LCD controller instruction command. 
+<p>
+<dl compact><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>instruction to send to LCD controller, see HD44780 data sheet </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>none </dd></dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="g5558061811c21afc4fe3992a45e43844"></a><!-- doxytag: member="lcd.h::lcd_data" ref="g5558061811c21afc4fe3992a45e43844" args="(uint8_t data)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void lcd_data           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">uint8_t&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>data</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Send data byte to LCD controller. 
+<p>
+Similar to <a class="el" href="group__pfleury__lcd.html#g38d1e9ef5cebc368b96f5a3173b1a8a6">lcd_putc()</a>, but without interpreting LF <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>byte to send to LCD controller, see HD44780 data sheet </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>none </dd></dl>
+    </td>
+  </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Jan 30 20:50:15 2006 for AVR-GCC libraries by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.5 </small></address>
+</body>
+</html>