imported project in hg

This commit is contained in:
sebastian 2009-05-16 14:10:42 +02:00
commit dac449a43a
56 changed files with 4931 additions and 0 deletions

BIN
button.bmp Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

36
button.h Executable file
View File

@ -0,0 +1,36 @@
#include <avr/pgmspace.h>
const uint8_t bitmap[] PROGMEM = {
0x00,0x00,0x00,0x00,
0x80,0xFF,0xFF,0x01,
0x60,0x00,0x00,0x06,
0x10,0x00,0x00,0x08,
0x08,0x00,0x00,0x10,
0x04,0x00,0x00,0x20,
0x04,0x00,0x00,0x20,
0x02,0x00,0x00,0x40,
0x02,0x00,0x00,0x40,
0x02,0x80,0x01,0x40,
0x02,0xC0,0x03,0x40,
0x02,0xE0,0x07,0x40,
0x02,0xF0,0x0F,0x40,
0x02,0xF8,0x1F,0x40,
0x02,0xFC,0x3F,0x40,
0x02,0xFE,0x7F,0x40,
0x02,0xFF,0xFF,0x40,
0x82,0xFF,0xFF,0x41,
0xC2,0xFF,0xFF,0x43,
0xE2,0xFF,0xFF,0x47,
0xF2,0xFF,0xFF,0x4F,
0xFA,0xFF,0xFF,0x5F,
0x02,0x00,0x00,0x40,
0x02,0x00,0x00,0x40,
0x02,0x00,0x00,0x40,
0x04,0x00,0x00,0x20,
0x04,0x00,0x00,0x20,
0x08,0x00,0x00,0x10,
0x10,0x00,0x00,0x08,
0x60,0x00,0x00,0x06,
0x80,0xFF,0xFF,0x01,
0x00,0x00,0x00,0x00};

View File

@ -0,0 +1,25 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: Debug/include/lc7981.d File Reference</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.5.5 -->
<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>
<div class="contents">
<h1>Debug/include/lc7981.d File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri May 15 21:22:13 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

View File

@ -0,0 +1,25 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: Debug/main.d File Reference</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.5.5 -->
<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>
<div class="contents">
<h1>Debug/main.d File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri May 15 21:22:13 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

View File

@ -0,0 +1,25 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: Release/include/lc7981.d File Reference</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.5.5 -->
<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>
<div class="contents">
<h1>Release/include/lc7981.d File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri May 15 21:22:13 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

View File

@ -0,0 +1,25 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: Release/main.d File Reference</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.5.5 -->
<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>
<div class="contents">
<h1>Release/main.d File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri May 15 21:22:13 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

View File

@ -0,0 +1,56 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: button.h Source File</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.5.5 -->
<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>
<h1>button.h</h1><a href="button_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;avr/pgmspace.h&gt;</span>
<a name="l00002"></a>00002
<a name="l00003"></a><a class="code" href="button_8h.html#1ca6393a353d3dde5511786a4d7cc139">00003</a> <span class="keyword">const</span> uint8_t bitmap[] <a class="code" href="button_8h.html#1ca6393a353d3dde5511786a4d7cc139">PROGMEM</a> = {
<a name="l00004"></a>00004 0x00,0x00,0x00,0x00,
<a name="l00005"></a>00005 0x80,0xFF,0xFF,0x01,
<a name="l00006"></a>00006 0x60,0x00,0x00,0x06,
<a name="l00007"></a>00007 0x10,0x00,0x00,0x08,
<a name="l00008"></a>00008 0x08,0x00,0x00,0x10,
<a name="l00009"></a>00009 0x04,0x00,0x00,0x20,
<a name="l00010"></a>00010 0x04,0x00,0x00,0x20,
<a name="l00011"></a>00011 0x02,0x00,0x00,0x40,
<a name="l00012"></a>00012 0x02,0x00,0x00,0x40,
<a name="l00013"></a>00013 0x02,0x80,0x01,0x40,
<a name="l00014"></a>00014 0x02,0xC0,0x03,0x40,
<a name="l00015"></a>00015 0x02,0xE0,0x07,0x40,
<a name="l00016"></a>00016 0x02,0xF0,0x0F,0x40,
<a name="l00017"></a>00017 0x02,0xF8,0x1F,0x40,
<a name="l00018"></a>00018 0x02,0xFC,0x3F,0x40,
<a name="l00019"></a>00019 0x02,0xFE,0x7F,0x40,
<a name="l00020"></a>00020 0x02,0xFF,0xFF,0x40,
<a name="l00021"></a>00021 0x82,0xFF,0xFF,0x41,
<a name="l00022"></a>00022 0xC2,0xFF,0xFF,0x43,
<a name="l00023"></a>00023 0xE2,0xFF,0xFF,0x47,
<a name="l00024"></a>00024 0xF2,0xFF,0xFF,0x4F,
<a name="l00025"></a>00025 0xFA,0xFF,0xFF,0x5F,
<a name="l00026"></a>00026 0x02,0x00,0x00,0x40,
<a name="l00027"></a>00027 0x02,0x00,0x00,0x40,
<a name="l00028"></a>00028 0x02,0x00,0x00,0x40,
<a name="l00029"></a>00029 0x04,0x00,0x00,0x20,
<a name="l00030"></a>00030 0x04,0x00,0x00,0x20,
<a name="l00031"></a>00031 0x08,0x00,0x00,0x10,
<a name="l00032"></a>00032 0x10,0x00,0x00,0x08,
<a name="l00033"></a>00033 0x60,0x00,0x00,0x06,
<a name="l00034"></a>00034 0x80,0xFF,0xFF,0x01,
<a name="l00035"></a>00035 0x00,0x00,0x00,0x00};
<a name="l00036"></a>00036
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 16 13:46:33 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

47
doc/html/button_8h.html Normal file
View File

@ -0,0 +1,47 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: button.h File Reference</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.5.5 -->
<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>
<div class="contents">
<h1>button.h File Reference</h1><code>#include &lt;avr/pgmspace.h&gt;</code><br>
<p>
<a href="button_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const uint8_t bitmap[]&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="button_8h.html#1ca6393a353d3dde5511786a4d7cc139">PROGMEM</a></td></tr>
</table>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="1ca6393a353d3dde5511786a4d7cc139"></a><!-- doxytag: member="button.h::PROGMEM" ref="1ca6393a353d3dde5511786a4d7cc139" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const uint8_t bitmap [] <a class="el" href="button_8h.html#1ca6393a353d3dde5511786a4d7cc139">PROGMEM</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 16 13:46:33 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

433
doc/html/doxygen.css Normal file
View File

@ -0,0 +1,433 @@
BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
font-family: Geneva, Arial, Helvetica, sans-serif;
}
BODY,TD {
font-size: 90%;
}
H1 {
text-align: center;
font-size: 160%;
}
H2 {
font-size: 120%;
}
H3 {
font-size: 100%;
}
CAPTION {
font-weight: bold
}
DIV.qindex {
width: 100%;
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
padding: 2px;
line-height: 140%;
}
DIV.navpath {
width: 100%;
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
padding: 2px;
line-height: 140%;
}
DIV.navtab {
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
TD.navtab {
font-size: 70%;
}
A.qindex {
text-decoration: none;
font-weight: bold;
color: #1A419D;
}
A.qindex:visited {
text-decoration: none;
font-weight: bold;
color: #1A419D
}
A.qindex:hover {
text-decoration: none;
background-color: #ddddff;
}
A.qindexHL {
text-decoration: none;
font-weight: bold;
background-color: #6666cc;
color: #ffffff;
border: 1px double #9295C2;
}
A.qindexHL:hover {
text-decoration: none;
background-color: #6666cc;
color: #ffffff;
}
A.qindexHL:visited {
text-decoration: none;
background-color: #6666cc;
color: #ffffff
}
A.el {
text-decoration: none;
font-weight: bold
}
A.elRef {
font-weight: bold
}
A.code:link {
text-decoration: none;
font-weight: normal;
color: #0000FF
}
A.code:visited {
text-decoration: none;
font-weight: normal;
color: #0000FF
}
A.codeRef:link {
font-weight: normal;
color: #0000FF
}
A.codeRef:visited {
font-weight: normal;
color: #0000FF
}
A:hover {
text-decoration: none;
background-color: #f2f2ff
}
DL.el {
margin-left: -1cm
}
.fragment {
font-family: monospace, fixed;
font-size: 95%;
}
PRE.fragment {
border: 1px solid #CCCCCC;
background-color: #f5f5f5;
margin-top: 4px;
margin-bottom: 4px;
margin-left: 2px;
margin-right: 8px;
padding-left: 6px;
padding-right: 6px;
padding-top: 4px;
padding-bottom: 4px;
}
DIV.ah {
background-color: black;
font-weight: bold;
color: #ffffff;
margin-bottom: 3px;
margin-top: 3px
}
DIV.groupHeader {
margin-left: 16px;
margin-top: 12px;
margin-bottom: 6px;
font-weight: bold;
}
DIV.groupText {
margin-left: 16px;
font-style: italic;
font-size: 90%
}
BODY {
background: white;
color: black;
margin-right: 20px;
margin-left: 20px;
}
TD.indexkey {
background-color: #e8eef2;
font-weight: bold;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px;
border: 1px solid #CCCCCC;
}
TD.indexvalue {
background-color: #e8eef2;
font-style: italic;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px;
border: 1px solid #CCCCCC;
}
TR.memlist {
background-color: #f0f0f0;
}
P.formulaDsp {
text-align: center;
}
IMG.formulaDsp {
}
IMG.formulaInl {
vertical-align: middle;
}
SPAN.keyword { color: #008000 }
SPAN.keywordtype { color: #604020 }
SPAN.keywordflow { color: #e08000 }
SPAN.comment { color: #800000 }
SPAN.preprocessor { color: #806020 }
SPAN.stringliteral { color: #002080 }
SPAN.charliteral { color: #008080 }
SPAN.vhdldigit { color: #ff00ff }
SPAN.vhdlchar { color: #000000 }
SPAN.vhdlkeyword { color: #700070 }
SPAN.vhdllogic { color: #ff0000 }
.mdescLeft {
padding: 0px 8px 4px 8px;
font-size: 80%;
font-style: italic;
background-color: #FAFAFA;
border-top: 1px none #E0E0E0;
border-right: 1px none #E0E0E0;
border-bottom: 1px none #E0E0E0;
border-left: 1px none #E0E0E0;
margin: 0px;
}
.mdescRight {
padding: 0px 8px 4px 8px;
font-size: 80%;
font-style: italic;
background-color: #FAFAFA;
border-top: 1px none #E0E0E0;
border-right: 1px none #E0E0E0;
border-bottom: 1px none #E0E0E0;
border-left: 1px none #E0E0E0;
margin: 0px;
}
.memItemLeft {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memItemRight {
padding: 1px 8px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplItemLeft {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplItemRight {
padding: 1px 8px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplParams {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
color: #606060;
background-color: #FAFAFA;
font-size: 80%;
}
.search {
color: #003399;
font-weight: bold;
}
FORM.search {
margin-bottom: 0px;
margin-top: 0px;
}
INPUT.search {
font-size: 75%;
color: #000080;
font-weight: normal;
background-color: #e8eef2;
}
TD.tiny {
font-size: 75%;
}
a {
color: #1A41A8;
}
a:visited {
color: #2A3798;
}
.dirtab {
padding: 4px;
border-collapse: collapse;
border: 1px solid #84b0c7;
}
TH.dirtab {
background: #e8eef2;
font-weight: bold;
}
HR {
height: 1px;
border: none;
border-top: 1px solid black;
}
/* Style for detailed member documentation */
.memtemplate {
font-size: 80%;
color: #606060;
font-weight: normal;
margin-left: 3px;
}
.memnav {
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
.memitem {
padding: 4px;
background-color: #eef3f5;
border-width: 1px;
border-style: solid;
border-color: #dedeee;
-moz-border-radius: 8px 8px 8px 8px;
}
.memname {
white-space: nowrap;
font-weight: bold;
}
.memdoc{
padding-left: 10px;
}
.memproto {
background-color: #d5e1e8;
width: 100%;
border-width: 1px;
border-style: solid;
border-color: #84b0c7;
font-weight: bold;
-moz-border-radius: 8px 8px 8px 8px;
}
.paramkey {
text-align: right;
}
.paramtype {
white-space: nowrap;
}
.paramname {
color: #602020;
font-style: italic;
white-space: nowrap;
}
/* End Styling for detailed member documentation */
/* for the tree view */
.ftvtree {
font-family: sans-serif;
margin:0.5em;
}
.directory {
font-size: 9pt;
font-weight: bold;
}
.directory h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
.directory > h3 {
margin-top: 0;
}
.directory p {
margin: 0px;
white-space: nowrap;
}
.directory div {
display: none;
margin: 0px;
}
.directory img {
vertical-align: -30%;
}

BIN
doc/html/doxygen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,35 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: draw_penguin.h Source File</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.5.5 -->
<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>
<h1>draw_penguin.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * draw_penguin.h</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * Created on: 01.05.2009</span>
<a name="l00005"></a>00005 <span class="comment"> * Author: sebastian</span>
<a name="l00006"></a>00006 <span class="comment"> */</span>
<a name="l00007"></a>00007
<a name="l00008"></a>00008 <span class="preprocessor">#ifndef DRAW_PENGUIN_H_</span>
<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define DRAW_PENGUIN_H_ DRAW_PENGUIN_H_</span>
<a name="l00010"></a>00010 <span class="preprocessor"></span>
<a name="l00011"></a>00011 <span class="preprocessor">#include "include/lc7981.h"</span>
<a name="l00012"></a>00012
<a name="l00013"></a>00013 <span class="keywordtype">void</span> draw_penguin();
<a name="l00014"></a>00014
<a name="l00015"></a>00015 <span class="preprocessor">#endif </span><span class="comment">/* DRAW_PENGUIN_H_ */</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri May 15 21:07:08 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

34
doc/html/files.html Normal file
View File

@ -0,0 +1,34 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: File Index</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.5.5 -->
<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 class="current"><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>File List</h1>Here is a list of all files with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="button_8h.html">button.h</a> <a href="button_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="main_8c.html">main.c</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey">include/<a class="el" href="lc7981_8c.html">lc7981.c</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey">include/<a class="el" href="lc7981_8h.html">lc7981.h</a> <a href="lc7981_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 16 13:46:33 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

BIN
doc/html/ftv2blank.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

BIN
doc/html/ftv2doc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

BIN
doc/html/ftv2folderopen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 B

BIN
doc/html/ftv2lastnode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

BIN
doc/html/ftv2link.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 B

BIN
doc/html/ftv2mlastnode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

BIN
doc/html/ftv2mnode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

BIN
doc/html/ftv2node.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 B

BIN
doc/html/ftv2plastnode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

BIN
doc/html/ftv2pnode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

BIN
doc/html/ftv2vertline.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

132
doc/html/globals.html Normal file
View File

@ -0,0 +1,132 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: Data Fields</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.5.5 -->
<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 class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_m"><span>m</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
</ul>
</div>
<p>
</div>
<div class="contents">
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
<p>
<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
<li>LC7981_H_
: <a class="el" href="lc7981_8h.html#e6ff861bd55f4dc46f25f5f6abfca15f">lc7981.h</a>
<li>lcd_clear()
: <a class="el" href="lc7981_8c.html#35c08b1fa742e650f4873939707b893b">lc7981.c</a>
, <a class="el" href="lc7981_8h.html#35c08b1fa742e650f4873939707b893b">lc7981.h</a>
<li>LCD_CRTL_DDR
: <a class="el" href="lc7981_8h.html#4b6c8400da9a1ca3d4d83f3ef1f9c34a">lc7981.h</a>
<li>LCD_CTRL
: <a class="el" href="lc7981_8h.html#8e945df7ca614325cafa08258e82a63c">lc7981.h</a>
<li>lcd_curline
: <a class="el" href="lc7981_8c.html#76f8e26cf50274635b544f68752b2a0f">lc7981.c</a>
<li>LCD_DATA
: <a class="el" href="lc7981_8h.html#25e9d818788f36ed74d7c4579f87f2a6">lc7981.h</a>
<li>LCD_DATA_DDR
: <a class="el" href="lc7981_8h.html#0c114e723aa4c162c415fb6d4d963dd7">lc7981.h</a>
<li>LCD_EN
: <a class="el" href="lc7981_8h.html#1640ffbc0d8ec0f7edb04a2b93918072">lc7981.h</a>
<li>lcd_en_high
: <a class="el" href="lc7981_8h.html#e14be306d3620577abc8613d40401b04">lc7981.h</a>
<li>lcd_en_low
: <a class="el" href="lc7981_8h.html#d8dcdb36a9410fd96b2c936b7c9355dd">lc7981.h</a>
<li>lcd_gotoxy()
: <a class="el" href="lc7981_8c.html#dbf47a5efdf02367ded1ebf8f9edb5fe">lc7981.c</a>
, <a class="el" href="lc7981_8h.html#dbf47a5efdf02367ded1ebf8f9edb5fe">lc7981.h</a>
<li>LCD_GRAPHIC
: <a class="el" href="lc7981_8h.html#dfaedf8da8e73d39a98d709b519a3117">lc7981.h</a>
<li>LCD_GRAPHIC_HEIGHT
: <a class="el" href="lc7981_8h.html#70265c4f840ef78872243e91c923af2f">lc7981.h</a>
<li>LCD_GRAPHIC_WIDTH
: <a class="el" href="lc7981_8h.html#51e83be6f6929f2a29d5467cd937dfc6">lc7981.h</a>
<li>lcd_init()
: <a class="el" href="lc7981_8c.html#9b18aca098d68e55bd7dd4b83f4f36e9">lc7981.c</a>
, <a class="el" href="lc7981_8h.html#9b18aca098d68e55bd7dd4b83f4f36e9">lc7981.h</a>
<li>lcd_mode
: <a class="el" href="lc7981_8c.html#a29c0577fe01129f48b5b21301d3ea49">lc7981.c</a>
<li>lcd_plot_bitmap()
: <a class="el" href="lc7981_8c.html#f3b584ee8235c6ed4ebefc50f8a95915">lc7981.c</a>
, <a class="el" href="lc7981_8h.html#175d691feb304584c8c18e6456e07401">lc7981.h</a>
<li>lcd_plot_pixel()
: <a class="el" href="lc7981_8h.html#735111507ed83172f58d5af2953e31c6">lc7981.h</a>
, <a class="el" href="lc7981_8c.html#735111507ed83172f58d5af2953e31c6">lc7981.c</a>
<li>lcd_read_byte()
: <a class="el" href="lc7981_8c.html#6334333537ad1d0bd51cba1e80f32e74">lc7981.c</a>
, <a class="el" href="lc7981_8h.html#6334333537ad1d0bd51cba1e80f32e74">lc7981.h</a>
<li>LCD_RS
: <a class="el" href="lc7981_8h.html#4781e073871c6f27f89b9463ad3a4ed1">lc7981.h</a>
<li>lcd_rs_high
: <a class="el" href="lc7981_8h.html#795b48274d3f80bc744a707b67fd93e9">lc7981.h</a>
<li>lcd_rs_low
: <a class="el" href="lc7981_8h.html#6edb13d59460246fb4cc32ada1c9f4a8">lc7981.h</a>
<li>LCD_RW
: <a class="el" href="lc7981_8h.html#26089a10ddd59a0dc7283c19ccc02533">lc7981.h</a>
<li>lcd_rw_high
: <a class="el" href="lc7981_8h.html#d0ce3cd9b481370ad4de36eff08440c8">lc7981.h</a>
<li>lcd_rw_low
: <a class="el" href="lc7981_8h.html#7f5ebe0ca71b1298a7d3423850cc82b1">lc7981.h</a>
<li>lcd_strobe()
: <a class="el" href="lc7981_8c.html#b4f286d6a313df7a5f692e0b4a9509ad">lc7981.c</a>
, <a class="el" href="lc7981_8h.html#b4f286d6a313df7a5f692e0b4a9509ad">lc7981.h</a>
<li>LCD_TEXT
: <a class="el" href="lc7981_8h.html#90a69d37f5c80f3ded970acf2dacf4c0">lc7981.h</a>
<li>LCD_TEXT_COLUMNS
: <a class="el" href="lc7981_8h.html#82f0a630f3c41b5233f2ceb07c7dd736">lc7981.h</a>
<li>LCD_TEXT_LINES
: <a class="el" href="lc7981_8h.html#720ef60606ac38ca3a5ab96a9c2b8168">lc7981.h</a>
<li>lcd_write_command()
: <a class="el" href="lc7981_8h.html#b69146a9179fc5b5deef3fc61cf0208c">lc7981.h</a>
, <a class="el" href="lc7981_8c.html#b69146a9179fc5b5deef3fc61cf0208c">lc7981.c</a>
<li>lcd_write_text()
: <a class="el" href="lc7981_8c.html#30251238a49999658455fdb0233757fb">lc7981.c</a>
, <a class="el" href="lc7981_8h.html#30251238a49999658455fdb0233757fb">lc7981.h</a>
</ul>
<h3><a class="anchor" name="index_m">- m -</a></h3><ul>
<li>main()
: <a class="el" href="main_8c.html#e66f6b31b5ad750f1fe042a706a4e3d4">main.c</a>
</ul>
<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
<li>PIXEL_OFF
: <a class="el" href="lc7981_8h.html#cda2f1b1cf6310700d0d91643c40e068">lc7981.h</a>
<li>PIXEL_ON
: <a class="el" href="lc7981_8h.html#eb2d212a26da4a5a4d3231b2773023e5">lc7981.h</a>
<li>PROGMEM
: <a class="el" href="button_8h.html#1ca6393a353d3dde5511786a4d7cc139">button.h</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 16 13:46:33 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

View File

@ -0,0 +1,84 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: Data Fields</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.5.5 -->
<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 class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li class="current"><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<p>
<ul>
<li>LC7981_H_
: <a class="el" href="lc7981_8h.html#e6ff861bd55f4dc46f25f5f6abfca15f">lc7981.h</a>
<li>LCD_CRTL_DDR
: <a class="el" href="lc7981_8h.html#4b6c8400da9a1ca3d4d83f3ef1f9c34a">lc7981.h</a>
<li>LCD_CTRL
: <a class="el" href="lc7981_8h.html#8e945df7ca614325cafa08258e82a63c">lc7981.h</a>
<li>LCD_DATA
: <a class="el" href="lc7981_8h.html#25e9d818788f36ed74d7c4579f87f2a6">lc7981.h</a>
<li>LCD_DATA_DDR
: <a class="el" href="lc7981_8h.html#0c114e723aa4c162c415fb6d4d963dd7">lc7981.h</a>
<li>LCD_EN
: <a class="el" href="lc7981_8h.html#1640ffbc0d8ec0f7edb04a2b93918072">lc7981.h</a>
<li>lcd_en_high
: <a class="el" href="lc7981_8h.html#e14be306d3620577abc8613d40401b04">lc7981.h</a>
<li>lcd_en_low
: <a class="el" href="lc7981_8h.html#d8dcdb36a9410fd96b2c936b7c9355dd">lc7981.h</a>
<li>LCD_GRAPHIC
: <a class="el" href="lc7981_8h.html#dfaedf8da8e73d39a98d709b519a3117">lc7981.h</a>
<li>LCD_GRAPHIC_HEIGHT
: <a class="el" href="lc7981_8h.html#70265c4f840ef78872243e91c923af2f">lc7981.h</a>
<li>LCD_GRAPHIC_WIDTH
: <a class="el" href="lc7981_8h.html#51e83be6f6929f2a29d5467cd937dfc6">lc7981.h</a>
<li>LCD_RS
: <a class="el" href="lc7981_8h.html#4781e073871c6f27f89b9463ad3a4ed1">lc7981.h</a>
<li>lcd_rs_high
: <a class="el" href="lc7981_8h.html#795b48274d3f80bc744a707b67fd93e9">lc7981.h</a>
<li>lcd_rs_low
: <a class="el" href="lc7981_8h.html#6edb13d59460246fb4cc32ada1c9f4a8">lc7981.h</a>
<li>LCD_RW
: <a class="el" href="lc7981_8h.html#26089a10ddd59a0dc7283c19ccc02533">lc7981.h</a>
<li>lcd_rw_high
: <a class="el" href="lc7981_8h.html#d0ce3cd9b481370ad4de36eff08440c8">lc7981.h</a>
<li>lcd_rw_low
: <a class="el" href="lc7981_8h.html#7f5ebe0ca71b1298a7d3423850cc82b1">lc7981.h</a>
<li>LCD_TEXT
: <a class="el" href="lc7981_8h.html#90a69d37f5c80f3ded970acf2dacf4c0">lc7981.h</a>
<li>LCD_TEXT_COLUMNS
: <a class="el" href="lc7981_8h.html#82f0a630f3c41b5233f2ceb07c7dd736">lc7981.h</a>
<li>LCD_TEXT_LINES
: <a class="el" href="lc7981_8h.html#720ef60606ac38ca3a5ab96a9c2b8168">lc7981.h</a>
<li>PIXEL_OFF
: <a class="el" href="lc7981_8h.html#cda2f1b1cf6310700d0d91643c40e068">lc7981.h</a>
<li>PIXEL_ON
: <a class="el" href="lc7981_8h.html#eb2d212a26da4a5a4d3231b2773023e5">lc7981.h</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 16 13:46:33 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

View File

@ -0,0 +1,69 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: Data Fields</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.5.5 -->
<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 class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<p>
<ul>
<li>lcd_clear()
: <a class="el" href="lc7981_8c.html#35c08b1fa742e650f4873939707b893b">lc7981.c</a>
, <a class="el" href="lc7981_8h.html#35c08b1fa742e650f4873939707b893b">lc7981.h</a>
<li>lcd_gotoxy()
: <a class="el" href="lc7981_8h.html#dbf47a5efdf02367ded1ebf8f9edb5fe">lc7981.h</a>
, <a class="el" href="lc7981_8c.html#dbf47a5efdf02367ded1ebf8f9edb5fe">lc7981.c</a>
<li>lcd_init()
: <a class="el" href="lc7981_8c.html#9b18aca098d68e55bd7dd4b83f4f36e9">lc7981.c</a>
, <a class="el" href="lc7981_8h.html#9b18aca098d68e55bd7dd4b83f4f36e9">lc7981.h</a>
<li>lcd_plot_bitmap()
: <a class="el" href="lc7981_8h.html#175d691feb304584c8c18e6456e07401">lc7981.h</a>
, <a class="el" href="lc7981_8c.html#f3b584ee8235c6ed4ebefc50f8a95915">lc7981.c</a>
<li>lcd_plot_pixel()
: <a class="el" href="lc7981_8c.html#735111507ed83172f58d5af2953e31c6">lc7981.c</a>
, <a class="el" href="lc7981_8h.html#735111507ed83172f58d5af2953e31c6">lc7981.h</a>
<li>lcd_read_byte()
: <a class="el" href="lc7981_8c.html#6334333537ad1d0bd51cba1e80f32e74">lc7981.c</a>
, <a class="el" href="lc7981_8h.html#6334333537ad1d0bd51cba1e80f32e74">lc7981.h</a>
<li>lcd_strobe()
: <a class="el" href="lc7981_8c.html#b4f286d6a313df7a5f692e0b4a9509ad">lc7981.c</a>
, <a class="el" href="lc7981_8h.html#b4f286d6a313df7a5f692e0b4a9509ad">lc7981.h</a>
<li>lcd_write_command()
: <a class="el" href="lc7981_8h.html#b69146a9179fc5b5deef3fc61cf0208c">lc7981.h</a>
, <a class="el" href="lc7981_8c.html#b69146a9179fc5b5deef3fc61cf0208c">lc7981.c</a>
<li>lcd_write_text()
: <a class="el" href="lc7981_8h.html#30251238a49999658455fdb0233757fb">lc7981.h</a>
, <a class="el" href="lc7981_8c.html#30251238a49999658455fdb0233757fb">lc7981.c</a>
<li>main()
: <a class="el" href="main_8c.html#e66f6b31b5ad750f1fe042a706a4e3d4">main.c</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 16 13:46:33 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

View File

@ -0,0 +1,46 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: Data Fields</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.5.5 -->
<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 class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<p>
<ul>
<li>lcd_curline
: <a class="el" href="lc7981_8c.html#76f8e26cf50274635b544f68752b2a0f">lc7981.c</a>
<li>lcd_mode
: <a class="el" href="lc7981_8c.html#a29c0577fe01129f48b5b21301d3ea49">lc7981.c</a>
<li>PROGMEM
: <a class="el" href="button_8h.html#1ca6393a353d3dde5511786a4d7cc139">button.h</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 16 13:46:33 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

24
doc/html/index.html Normal file
View File

@ -0,0 +1,24 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: Main Page</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.5.5 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li class="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>glcd Documentation</h1>
<p>
<h3 align="center">0.1beta </h3></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 16 13:46:33 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

375
doc/html/lc7981_8c.html Normal file
View File

@ -0,0 +1,375 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: include/lc7981.c File Reference</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.5.5 -->
<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>
<div class="contents">
<h1>include/lc7981.c File Reference</h1><code>#include &quot;<a class="el" href="lc7981_8h-source.html">lc7981.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8c.html#9b18aca098d68e55bd7dd4b83f4f36e9">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="#9b18aca098d68e55bd7dd4b83f4f36e9"></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="lc7981_8c.html#b69146a9179fc5b5deef3fc61cf0208c">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="#b69146a9179fc5b5deef3fc61cf0208c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8c.html#6334333537ad1d0bd51cba1e80f32e74">lcd_read_byte</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads a byte from the display memory. <a href="#6334333537ad1d0bd51cba1e80f32e74"></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="lc7981_8c.html#b4f286d6a313df7a5f692e0b4a9509ad">lcd_strobe</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates the strobe signal for writing data. <a href="#b4f286d6a313df7a5f692e0b4a9509ad"></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="lc7981_8c.html#35c08b1fa742e650f4873939707b893b">lcd_clear</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears the display by setting the whole memory to 0. <a href="#35c08b1fa742e650f4873939707b893b"></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="lc7981_8c.html#30251238a49999658455fdb0233757fb">lcd_write_text</a> (char *txt)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8c.html#dbf47a5efdf02367ded1ebf8f9edb5fe">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="#dbf47a5efdf02367ded1ebf8f9edb5fe"></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="lc7981_8c.html#735111507ed83172f58d5af2953e31c6">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="#735111507ed83172f58d5af2953e31c6"></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="lc7981_8c.html#f3b584ee8235c6ed4ebefc50f8a95915">lcd_plot_bitmap</a> (uint8_t x_off, uint8_t y_off, const uint8_t *bitmap, uint8_t w, uint8_t h)</td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8c.html#a29c0577fe01129f48b5b21301d3ea49">lcd_mode</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Currently used mode, can be text or graphic. <a href="#a29c0577fe01129f48b5b21301d3ea49"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8c.html#76f8e26cf50274635b544f68752b2a0f">lcd_curline</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Current line. Used for scrolling in text mode. <a href="#76f8e26cf50274635b544f68752b2a0f"></a><br></td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="35c08b1fa742e650f4873939707b893b"></a><!-- doxytag: member="lc7981.c::lcd_clear" ref="35c08b1fa742e650f4873939707b893b" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void lcd_clear </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Clears the display by setting the whole memory to 0.
<p>
</div>
</div><p>
<a class="anchor" name="dbf47a5efdf02367ded1ebf8f9edb5fe"></a><!-- doxytag: member="lc7981.c::lcd_gotoxy" ref="dbf47a5efdf02367ded1ebf8f9edb5fe" 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 width="100%"><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set the display cursor to a specific location.
<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 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>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>
</dl>
</div>
</div><p>
<a class="anchor" name="9b18aca098d68e55bd7dd4b83f4f36e9"></a><!-- doxytag: member="lc7981.c::lcd_init" ref="9b18aca098d68e55bd7dd4b83f4f36e9" 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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
lcd_init set the to default values.
<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>mode</em>&nbsp;</td><td>LCD_TEXT for text mode and LCD_GRAPHIC for graphic mode </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="f3b584ee8235c6ed4ebefc50f8a95915"></a><!-- doxytag: member="lc7981.c::lcd_plot_bitmap" ref="f3b584ee8235c6ed4ebefc50f8a95915" args="(uint8_t x_off, uint8_t y_off, const uint8_t *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_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 uint8_t *&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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="735111507ed83172f58d5af2953e31c6"></a><!-- doxytag: member="lc7981.c::lcd_plot_pixel" ref="735111507ed83172f58d5af2953e31c6" 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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
set or unset a pixel at the specified location
<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 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>
</dl>
</div>
</div><p>
<a class="anchor" name="6334333537ad1d0bd51cba1e80f32e74"></a><!-- doxytag: member="lc7981.c::lcd_read_byte" ref="6334333537ad1d0bd51cba1e80f32e74" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t lcd_read_byte </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Reads a byte from the display memory.
<p>
lcd_gotoxy can be used to set the location. Important : lcd_gotoxy doesn't work in graphics mode yet.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the byte which has been read </dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="lc7981_8h.html#dbf47a5efdf02367ded1ebf8f9edb5fe" title="Set the display cursor to a specific location.">lcd_gotoxy</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="b4f286d6a313df7a5f692e0b4a9509ad"></a><!-- doxytag: member="lc7981.c::lcd_strobe" ref="b4f286d6a313df7a5f692e0b4a9509ad" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void lcd_strobe </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Generates the strobe signal for writing data.
<p>
This function is meant for internal usage only.
</div>
</div><p>
<a class="anchor" name="b69146a9179fc5b5deef3fc61cf0208c"></a><!-- doxytag: member="lc7981.c::lcd_write_command" ref="b69146a9179fc5b5deef3fc61cf0208c" args="(uint8_t cmd, uint8_t data)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">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 width="100%"><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Writes a command and a data byte to the lcd.
<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>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>
</dl>
</div>
</div><p>
<a class="anchor" name="30251238a49999658455fdb0233757fb"></a><!-- doxytag: member="lc7981.c::lcd_write_text" ref="30251238a49999658455fdb0233757fb" 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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="76f8e26cf50274635b544f68752b2a0f"></a><!-- doxytag: member="lc7981.c::lcd_curline" ref="76f8e26cf50274635b544f68752b2a0f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="lc7981_8c.html#76f8e26cf50274635b544f68752b2a0f">lcd_curline</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Current line. Used for scrolling in text mode.
<p>
</div>
</div><p>
<a class="anchor" name="a29c0577fe01129f48b5b21301d3ea49"></a><!-- doxytag: member="lc7981.c::lcd_mode" ref="a29c0577fe01129f48b5b21301d3ea49" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="lc7981_8c.html#a29c0577fe01129f48b5b21301d3ea49">lcd_mode</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Currently used mode, can be text or graphic.
<p>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 16 13:46:33 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

View File

@ -0,0 +1,81 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: include/lc7981.h Source File</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.5.5 -->
<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>
<h1>include/lc7981.h</h1><a href="lc7981_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * lc7981.h</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * Created on: 01.05.2009</span>
<a name="l00005"></a>00005 <span class="comment"> * Author: sebastian</span>
<a name="l00006"></a>00006 <span class="comment"> */</span>
<a name="l00007"></a>00007
<a name="l00008"></a>00008 <span class="preprocessor">#ifndef LC7981_H_</span>
<a name="l00009"></a><a class="code" href="lc7981_8h.html#e6ff861bd55f4dc46f25f5f6abfca15f">00009</a> <span class="preprocessor"></span><span class="preprocessor">#define LC7981_H_ LC7981_H_</span>
<a name="l00010"></a>00010 <span class="preprocessor"></span>
<a name="l00011"></a>00011 <span class="preprocessor">#include &lt;avr/io.h&gt;</span>
<a name="l00012"></a>00012 <span class="preprocessor">#include &lt;util/delay.h&gt;</span>
<a name="l00013"></a>00013 <span class="preprocessor">#include &lt;avr/pgmspace.h&gt;</span>
<a name="l00014"></a>00014
<a name="l00015"></a><a class="code" href="lc7981_8h.html#8e945df7ca614325cafa08258e82a63c">00015</a> <span class="preprocessor">#define LCD_CTRL PORTC</span>
<a name="l00016"></a><a class="code" href="lc7981_8h.html#4b6c8400da9a1ca3d4d83f3ef1f9c34a">00016</a> <span class="preprocessor"></span><span class="preprocessor">#define LCD_CRTL_DDR DDRC</span>
<a name="l00017"></a><a class="code" href="lc7981_8h.html#4781e073871c6f27f89b9463ad3a4ed1">00017</a> <span class="preprocessor"></span><span class="preprocessor">#define LCD_RS PC4</span>
<a name="l00018"></a><a class="code" href="lc7981_8h.html#26089a10ddd59a0dc7283c19ccc02533">00018</a> <span class="preprocessor"></span><span class="preprocessor">#define LCD_RW PC2</span>
<a name="l00019"></a><a class="code" href="lc7981_8h.html#1640ffbc0d8ec0f7edb04a2b93918072">00019</a> <span class="preprocessor"></span><span class="preprocessor">#define LCD_EN PC0</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a>00021
<a name="l00022"></a>00022
<a name="l00023"></a><a class="code" href="lc7981_8h.html#25e9d818788f36ed74d7c4579f87f2a6">00023</a> <span class="preprocessor">#define LCD_DATA PORTD</span>
<a name="l00024"></a><a class="code" href="lc7981_8h.html#0c114e723aa4c162c415fb6d4d963dd7">00024</a> <span class="preprocessor"></span><span class="preprocessor">#define LCD_DATA_DDR DDRD</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span>
<a name="l00026"></a>00026 <span class="comment">// Macros for (un)setting the control pins</span>
<a name="l00027"></a><a class="code" href="lc7981_8h.html#795b48274d3f80bc744a707b67fd93e9">00027</a> <span class="preprocessor">#define lcd_rs_high() (LCD_CTRL |= (1 &lt;&lt; LCD_RS))</span>
<a name="l00028"></a><a class="code" href="lc7981_8h.html#6edb13d59460246fb4cc32ada1c9f4a8">00028</a> <span class="preprocessor"></span><span class="preprocessor">#define lcd_rs_low() (LCD_CTRL &amp;= ~(1 &lt;&lt; LCD_RS))</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span>
<a name="l00030"></a><a class="code" href="lc7981_8h.html#d0ce3cd9b481370ad4de36eff08440c8">00030</a> <span class="preprocessor">#define lcd_rw_high() (LCD_CTRL |= (1 &lt;&lt; LCD_RW))</span>
<a name="l00031"></a><a class="code" href="lc7981_8h.html#7f5ebe0ca71b1298a7d3423850cc82b1">00031</a> <span class="preprocessor"></span><span class="preprocessor">#define lcd_rw_low() (LCD_CTRL &amp;= ~(1 &lt;&lt; LCD_RW))</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span>
<a name="l00033"></a><a class="code" href="lc7981_8h.html#e14be306d3620577abc8613d40401b04">00033</a> <span class="preprocessor">#define lcd_en_high() (LCD_CTRL |= (1 &lt;&lt; LCD_EN))</span>
<a name="l00034"></a><a class="code" href="lc7981_8h.html#d8dcdb36a9410fd96b2c936b7c9355dd">00034</a> <span class="preprocessor"></span><span class="preprocessor">#define lcd_en_low() (LCD_CTRL &amp;= ~(1 &lt;&lt; LCD_EN))</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span>
<a name="l00036"></a>00036
<a name="l00037"></a><a class="code" href="lc7981_8h.html#90a69d37f5c80f3ded970acf2dacf4c0">00037</a> <span class="preprocessor">#define LCD_TEXT 0</span>
<a name="l00038"></a><a class="code" href="lc7981_8h.html#720ef60606ac38ca3a5ab96a9c2b8168">00038</a> <span class="preprocessor"></span><span class="preprocessor">#define LCD_TEXT_LINES 10</span>
<a name="l00039"></a><a class="code" href="lc7981_8h.html#82f0a630f3c41b5233f2ceb07c7dd736">00039</a> <span class="preprocessor"></span><span class="preprocessor">#define LCD_TEXT_COLUMNS 26</span>
<a name="l00040"></a>00040 <span class="preprocessor"></span>
<a name="l00041"></a><a class="code" href="lc7981_8h.html#dfaedf8da8e73d39a98d709b519a3117">00041</a> <span class="preprocessor">#define LCD_GRAPHIC 1</span>
<a name="l00042"></a><a class="code" href="lc7981_8h.html#51e83be6f6929f2a29d5467cd937dfc6">00042</a> <span class="preprocessor"></span><span class="preprocessor">#define LCD_GRAPHIC_WIDTH 160</span>
<a name="l00043"></a><a class="code" href="lc7981_8h.html#70265c4f840ef78872243e91c923af2f">00043</a> <span class="preprocessor"></span><span class="preprocessor">#define LCD_GRAPHIC_HEIGHT 80</span>
<a name="l00044"></a><a class="code" href="lc7981_8h.html#eb2d212a26da4a5a4d3231b2773023e5">00044</a> <span class="preprocessor"></span><span class="preprocessor">#define PIXEL_ON 1</span>
<a name="l00045"></a><a class="code" href="lc7981_8h.html#cda2f1b1cf6310700d0d91643c40e068">00045</a> <span class="preprocessor"></span><span class="preprocessor">#define PIXEL_OFF 0</span>
<a name="l00046"></a>00046 <span class="preprocessor"></span>
<a name="l00047"></a>00047 <span class="keywordtype">void</span> <a class="code" href="lc7981_8c.html#9b18aca098d68e55bd7dd4b83f4f36e9" title="lcd_init set the to default values.">lcd_init</a>(uint8_t mode);
<a name="l00048"></a>00048 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="lc7981_8c.html#35c08b1fa742e650f4873939707b893b" title="Clears the display by setting the whole memory to 0.">lcd_clear</a>();
<a name="l00049"></a>00049
<a name="l00050"></a>00050 <span class="keywordtype">void</span> <a class="code" href="lc7981_8c.html#30251238a49999658455fdb0233757fb">lcd_write_text</a>(<span class="keywordtype">char</span> *txt);
<a name="l00051"></a>00051 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="lc7981_8c.html#dbf47a5efdf02367ded1ebf8f9edb5fe" title="Set the display cursor to a specific location.">lcd_gotoxy</a>(uint8_t x, uint8_t y);
<a name="l00052"></a>00052
<a name="l00053"></a>00053 <span class="keywordtype">void</span> <a class="code" href="lc7981_8c.html#735111507ed83172f58d5af2953e31c6" title="set or unset a pixel at the specified location">lcd_plot_pixel</a>(uint8_t x, uint8_t y, uint8_t <span class="keyword">set</span>);
<a name="l00054"></a>00054 <span class="keywordtype">void</span> <a class="code" href="lc7981_8c.html#f3b584ee8235c6ed4ebefc50f8a95915">lcd_plot_bitmap</a>(uint8_t x, uint8_t y, <span class="keyword">const</span> uint8_t *bitmap, uint8_t w, uint8_t h);
<a name="l00055"></a>00055
<a name="l00056"></a>00056
<a name="l00057"></a>00057 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="lc7981_8c.html#b4f286d6a313df7a5f692e0b4a9509ad" title="Generates the strobe signal for writing data.">lcd_strobe</a>();
<a name="l00058"></a>00058 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="lc7981_8c.html#b69146a9179fc5b5deef3fc61cf0208c" title="Writes a command and a data byte to the lcd.">lcd_write_command</a>(uint8_t cmd, uint8_t data);
<a name="l00059"></a>00059 <span class="keyword">inline</span> uint8_t <a class="code" href="lc7981_8c.html#6334333537ad1d0bd51cba1e80f32e74" title="Reads a byte from the display memory.">lcd_read_byte</a>();
<a name="l00060"></a>00060
<a name="l00061"></a>00061 <span class="preprocessor">#endif </span><span class="comment">/* LC7981_H_ */</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 16 13:46:33 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

743
doc/html/lc7981_8h.html Normal file
View File

@ -0,0 +1,743 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: include/lc7981.h File Reference</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.5.5 -->
<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>
<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><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#e6ff861bd55f4dc46f25f5f6abfca15f">LC7981_H_</a>&nbsp;&nbsp;&nbsp;LC7981_H_</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#8e945df7ca614325cafa08258e82a63c">LCD_CTRL</a>&nbsp;&nbsp;&nbsp;PORTC</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#4b6c8400da9a1ca3d4d83f3ef1f9c34a">LCD_CRTL_DDR</a>&nbsp;&nbsp;&nbsp;DDRC</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#4781e073871c6f27f89b9463ad3a4ed1">LCD_RS</a>&nbsp;&nbsp;&nbsp;PC4</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#26089a10ddd59a0dc7283c19ccc02533">LCD_RW</a>&nbsp;&nbsp;&nbsp;PC2</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#1640ffbc0d8ec0f7edb04a2b93918072">LCD_EN</a>&nbsp;&nbsp;&nbsp;PC0</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#25e9d818788f36ed74d7c4579f87f2a6">LCD_DATA</a>&nbsp;&nbsp;&nbsp;PORTD</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#0c114e723aa4c162c415fb6d4d963dd7">LCD_DATA_DDR</a>&nbsp;&nbsp;&nbsp;DDRD</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#795b48274d3f80bc744a707b67fd93e9">lcd_rs_high</a>()&nbsp;&nbsp;&nbsp;(LCD_CTRL |= (1 &lt;&lt; LCD_RS))</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#6edb13d59460246fb4cc32ada1c9f4a8">lcd_rs_low</a>()&nbsp;&nbsp;&nbsp;(LCD_CTRL &amp;= ~(1 &lt;&lt; LCD_RS))</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#d0ce3cd9b481370ad4de36eff08440c8">lcd_rw_high</a>()&nbsp;&nbsp;&nbsp;(LCD_CTRL |= (1 &lt;&lt; LCD_RW))</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#7f5ebe0ca71b1298a7d3423850cc82b1">lcd_rw_low</a>()&nbsp;&nbsp;&nbsp;(LCD_CTRL &amp;= ~(1 &lt;&lt; LCD_RW))</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#e14be306d3620577abc8613d40401b04">lcd_en_high</a>()&nbsp;&nbsp;&nbsp;(LCD_CTRL |= (1 &lt;&lt; LCD_EN))</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#d8dcdb36a9410fd96b2c936b7c9355dd">lcd_en_low</a>()&nbsp;&nbsp;&nbsp;(LCD_CTRL &amp;= ~(1 &lt;&lt; LCD_EN))</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#90a69d37f5c80f3ded970acf2dacf4c0">LCD_TEXT</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="lc7981_8h.html#720ef60606ac38ca3a5ab96a9c2b8168">LCD_TEXT_LINES</a>&nbsp;&nbsp;&nbsp;10</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#82f0a630f3c41b5233f2ceb07c7dd736">LCD_TEXT_COLUMNS</a>&nbsp;&nbsp;&nbsp;26</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#dfaedf8da8e73d39a98d709b519a3117">LCD_GRAPHIC</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="lc7981_8h.html#51e83be6f6929f2a29d5467cd937dfc6">LCD_GRAPHIC_WIDTH</a>&nbsp;&nbsp;&nbsp;160</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#70265c4f840ef78872243e91c923af2f">LCD_GRAPHIC_HEIGHT</a>&nbsp;&nbsp;&nbsp;80</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#eb2d212a26da4a5a4d3231b2773023e5">PIXEL_ON</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="lc7981_8h.html#cda2f1b1cf6310700d0d91643c40e068">PIXEL_OFF</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#9b18aca098d68e55bd7dd4b83f4f36e9">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="#9b18aca098d68e55bd7dd4b83f4f36e9"></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="lc7981_8h.html#35c08b1fa742e650f4873939707b893b">lcd_clear</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears the display by setting the whole memory to 0. <a href="#35c08b1fa742e650f4873939707b893b"></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="lc7981_8h.html#30251238a49999658455fdb0233757fb">lcd_write_text</a> (char *txt)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#dbf47a5efdf02367ded1ebf8f9edb5fe">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="#dbf47a5efdf02367ded1ebf8f9edb5fe"></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="lc7981_8h.html#735111507ed83172f58d5af2953e31c6">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="#735111507ed83172f58d5af2953e31c6"></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="lc7981_8h.html#175d691feb304584c8c18e6456e07401">lcd_plot_bitmap</a> (uint8_t x, uint8_t y, const uint8_t *bitmap, uint8_t w, uint8_t h)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#b4f286d6a313df7a5f692e0b4a9509ad">lcd_strobe</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates the strobe signal for writing data. <a href="#b4f286d6a313df7a5f692e0b4a9509ad"></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="lc7981_8h.html#b69146a9179fc5b5deef3fc61cf0208c">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="#b69146a9179fc5b5deef3fc61cf0208c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lc7981_8h.html#6334333537ad1d0bd51cba1e80f32e74">lcd_read_byte</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads a byte from the display memory. <a href="#6334333537ad1d0bd51cba1e80f32e74"></a><br></td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="e6ff861bd55f4dc46f25f5f6abfca15f"></a><!-- doxytag: member="lc7981.h::LC7981_H_" ref="e6ff861bd55f4dc46f25f5f6abfca15f" 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>
</div>
</div><p>
<a class="anchor" name="4b6c8400da9a1ca3d4d83f3ef1f9c34a"></a><!-- doxytag: member="lc7981.h::LCD_CRTL_DDR" ref="4b6c8400da9a1ca3d4d83f3ef1f9c34a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_CRTL_DDR&nbsp;&nbsp;&nbsp;DDRC </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="8e945df7ca614325cafa08258e82a63c"></a><!-- doxytag: member="lc7981.h::LCD_CTRL" ref="8e945df7ca614325cafa08258e82a63c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_CTRL&nbsp;&nbsp;&nbsp;PORTC </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="25e9d818788f36ed74d7c4579f87f2a6"></a><!-- doxytag: member="lc7981.h::LCD_DATA" ref="25e9d818788f36ed74d7c4579f87f2a6" 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>
</div>
</div><p>
<a class="anchor" name="0c114e723aa4c162c415fb6d4d963dd7"></a><!-- doxytag: member="lc7981.h::LCD_DATA_DDR" ref="0c114e723aa4c162c415fb6d4d963dd7" 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>
</div>
</div><p>
<a class="anchor" name="1640ffbc0d8ec0f7edb04a2b93918072"></a><!-- doxytag: member="lc7981.h::LCD_EN" ref="1640ffbc0d8ec0f7edb04a2b93918072" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_EN&nbsp;&nbsp;&nbsp;PC0 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="e14be306d3620577abc8613d40401b04"></a><!-- doxytag: member="lc7981.h::lcd_en_high" ref="e14be306d3620577abc8613d40401b04" 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 width="100%">&nbsp;&nbsp;&nbsp;(LCD_CTRL |= (1 &lt;&lt; LCD_EN))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="d8dcdb36a9410fd96b2c936b7c9355dd"></a><!-- doxytag: member="lc7981.h::lcd_en_low" ref="d8dcdb36a9410fd96b2c936b7c9355dd" 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 width="100%">&nbsp;&nbsp;&nbsp;(LCD_CTRL &amp;= ~(1 &lt;&lt; LCD_EN))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="dfaedf8da8e73d39a98d709b519a3117"></a><!-- doxytag: member="lc7981.h::LCD_GRAPHIC" ref="dfaedf8da8e73d39a98d709b519a3117" 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>
</div>
</div><p>
<a class="anchor" name="70265c4f840ef78872243e91c923af2f"></a><!-- doxytag: member="lc7981.h::LCD_GRAPHIC_HEIGHT" ref="70265c4f840ef78872243e91c923af2f" 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>
</div>
</div><p>
<a class="anchor" name="51e83be6f6929f2a29d5467cd937dfc6"></a><!-- doxytag: member="lc7981.h::LCD_GRAPHIC_WIDTH" ref="51e83be6f6929f2a29d5467cd937dfc6" 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>
</div>
</div><p>
<a class="anchor" name="4781e073871c6f27f89b9463ad3a4ed1"></a><!-- doxytag: member="lc7981.h::LCD_RS" ref="4781e073871c6f27f89b9463ad3a4ed1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_RS&nbsp;&nbsp;&nbsp;PC4 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="795b48274d3f80bc744a707b67fd93e9"></a><!-- doxytag: member="lc7981.h::lcd_rs_high" ref="795b48274d3f80bc744a707b67fd93e9" 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 width="100%">&nbsp;&nbsp;&nbsp;(LCD_CTRL |= (1 &lt;&lt; LCD_RS))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="6edb13d59460246fb4cc32ada1c9f4a8"></a><!-- doxytag: member="lc7981.h::lcd_rs_low" ref="6edb13d59460246fb4cc32ada1c9f4a8" 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 width="100%">&nbsp;&nbsp;&nbsp;(LCD_CTRL &amp;= ~(1 &lt;&lt; LCD_RS))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="26089a10ddd59a0dc7283c19ccc02533"></a><!-- doxytag: member="lc7981.h::LCD_RW" ref="26089a10ddd59a0dc7283c19ccc02533" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LCD_RW&nbsp;&nbsp;&nbsp;PC2 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="d0ce3cd9b481370ad4de36eff08440c8"></a><!-- doxytag: member="lc7981.h::lcd_rw_high" ref="d0ce3cd9b481370ad4de36eff08440c8" 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 width="100%">&nbsp;&nbsp;&nbsp;(LCD_CTRL |= (1 &lt;&lt; LCD_RW))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="7f5ebe0ca71b1298a7d3423850cc82b1"></a><!-- doxytag: member="lc7981.h::lcd_rw_low" ref="7f5ebe0ca71b1298a7d3423850cc82b1" 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 width="100%">&nbsp;&nbsp;&nbsp;(LCD_CTRL &amp;= ~(1 &lt;&lt; LCD_RW))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="90a69d37f5c80f3ded970acf2dacf4c0"></a><!-- doxytag: member="lc7981.h::LCD_TEXT" ref="90a69d37f5c80f3ded970acf2dacf4c0" 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>
</div>
</div><p>
<a class="anchor" name="82f0a630f3c41b5233f2ceb07c7dd736"></a><!-- doxytag: member="lc7981.h::LCD_TEXT_COLUMNS" ref="82f0a630f3c41b5233f2ceb07c7dd736" 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>
</div>
</div><p>
<a class="anchor" name="720ef60606ac38ca3a5ab96a9c2b8168"></a><!-- doxytag: member="lc7981.h::LCD_TEXT_LINES" ref="720ef60606ac38ca3a5ab96a9c2b8168" 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>
</div>
</div><p>
<a class="anchor" name="cda2f1b1cf6310700d0d91643c40e068"></a><!-- doxytag: member="lc7981.h::PIXEL_OFF" ref="cda2f1b1cf6310700d0d91643c40e068" 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>
</div>
</div><p>
<a class="anchor" name="eb2d212a26da4a5a4d3231b2773023e5"></a><!-- doxytag: member="lc7981.h::PIXEL_ON" ref="eb2d212a26da4a5a4d3231b2773023e5" 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>
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="35c08b1fa742e650f4873939707b893b"></a><!-- doxytag: member="lc7981.h::lcd_clear" ref="35c08b1fa742e650f4873939707b893b" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void lcd_clear </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Clears the display by setting the whole memory to 0.
<p>
</div>
</div><p>
<a class="anchor" name="dbf47a5efdf02367ded1ebf8f9edb5fe"></a><!-- doxytag: member="lc7981.h::lcd_gotoxy" ref="dbf47a5efdf02367ded1ebf8f9edb5fe" 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 width="100%"><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set the display cursor to a specific location.
<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 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>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>
</dl>
</div>
</div><p>
<a class="anchor" name="9b18aca098d68e55bd7dd4b83f4f36e9"></a><!-- doxytag: member="lc7981.h::lcd_init" ref="9b18aca098d68e55bd7dd4b83f4f36e9" 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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
lcd_init set the to default values.
<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>mode</em>&nbsp;</td><td>LCD_TEXT for text mode and LCD_GRAPHIC for graphic mode </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="175d691feb304584c8c18e6456e07401"></a><!-- doxytag: member="lc7981.h::lcd_plot_bitmap" ref="175d691feb304584c8c18e6456e07401" args="(uint8_t x, uint8_t y, const uint8_t *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">const uint8_t *&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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="735111507ed83172f58d5af2953e31c6"></a><!-- doxytag: member="lc7981.h::lcd_plot_pixel" ref="735111507ed83172f58d5af2953e31c6" 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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
set or unset a pixel at the specified location
<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 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>
</dl>
</div>
</div><p>
<a class="anchor" name="6334333537ad1d0bd51cba1e80f32e74"></a><!-- doxytag: member="lc7981.h::lcd_read_byte" ref="6334333537ad1d0bd51cba1e80f32e74" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t lcd_read_byte </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Reads a byte from the display memory.
<p>
lcd_gotoxy can be used to set the location. Important : lcd_gotoxy doesn't work in graphics mode yet.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the byte which has been read </dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="lc7981_8h.html#dbf47a5efdf02367ded1ebf8f9edb5fe" title="Set the display cursor to a specific location.">lcd_gotoxy</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="b4f286d6a313df7a5f692e0b4a9509ad"></a><!-- doxytag: member="lc7981.h::lcd_strobe" ref="b4f286d6a313df7a5f692e0b4a9509ad" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void lcd_strobe </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Generates the strobe signal for writing data.
<p>
This function is meant for internal usage only.
</div>
</div><p>
<a class="anchor" name="b69146a9179fc5b5deef3fc61cf0208c"></a><!-- doxytag: member="lc7981.h::lcd_write_command" ref="b69146a9179fc5b5deef3fc61cf0208c" args="(uint8_t cmd, uint8_t data)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">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 width="100%"><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Writes a command and a data byte to the lcd.
<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>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>
</dl>
</div>
</div><p>
<a class="anchor" name="30251238a49999658455fdb0233757fb"></a><!-- doxytag: member="lc7981.h::lcd_write_text" ref="30251238a49999658455fdb0233757fb" 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 width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 16 13:46:33 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

24
doc/html/main.html Normal file
View File

@ -0,0 +1,24 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: Main Page</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.5.5 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li class="current"><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>glcd Documentation</h1>
<p>
<h3 align="center">0.1beta </h3></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 16 13:44:09 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

53
doc/html/main_8c.html Normal file
View File

@ -0,0 +1,53 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>glcd: main.c File Reference</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.5.5 -->
<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>
<div class="contents">
<h1>main.c File Reference</h1><code>#include &lt;avr/io.h&gt;</code><br>
<code>#include &lt;stdlib.h&gt;</code><br>
<code>#include &quot;<a class="el" href="lc7981_8h-source.html">include/lc7981.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="button_8h-source.html">button.h</a>&quot;</code><br>
<code>#include &quot;draw_penguin.h&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#e66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="e66f6b31b5ad750f1fe042a706a4e3d4"></a><!-- doxytag: member="main.c::main" ref="e66f6b31b5ad750f1fe042a706a4e3d4" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 16 13:46:33 2009 for glcd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>

BIN
doc/html/tab_b.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 B

BIN
doc/html/tab_l.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 B

BIN
doc/html/tab_r.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

102
doc/html/tabs.css Normal file
View File

@ -0,0 +1,102 @@
/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
DIV.tabs
{
float : left;
width : 100%;
background : url("tab_b.gif") repeat-x bottom;
margin-bottom : 4px;
}
DIV.tabs UL
{
margin : 0px;
padding-left : 10px;
list-style : none;
}
DIV.tabs LI, DIV.tabs FORM
{
display : inline;
margin : 0px;
padding : 0px;
}
DIV.tabs FORM
{
float : right;
}
DIV.tabs A
{
float : left;
background : url("tab_r.gif") no-repeat right top;
border-bottom : 1px solid #84B0C7;
font-size : x-small;
font-weight : bold;
text-decoration : none;
}
DIV.tabs A:hover
{
background-position: 100% -150px;
}
DIV.tabs A:link, DIV.tabs A:visited,
DIV.tabs A:active, DIV.tabs A:hover
{
color: #1A419D;
}
DIV.tabs SPAN
{
float : left;
display : block;
background : url("tab_l.gif") no-repeat left top;
padding : 5px 9px;
white-space : nowrap;
}
DIV.tabs INPUT
{
float : right;
display : inline;
font-size : 1em;
}
DIV.tabs TD
{
font-size : x-small;
font-weight : bold;
text-decoration : none;
}
/* Commented Backslash Hack hides rule from IE5-Mac \*/
DIV.tabs SPAN {float : none;}
/* End IE5-Mac hack */
DIV.tabs A:hover SPAN
{
background-position: 0% -150px;
}
DIV.tabs LI.current A
{
background-position: 100% -150px;
border-width : 0px;
}
DIV.tabs LI.current SPAN
{
background-position: 0% -150px;
padding-bottom : 6px;
}
DIV.navpath
{
background : none;
border : none;
border-bottom : 1px solid #84B0C7;
}

77
doc/html/tree.html Normal file
View File

@ -0,0 +1,77 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Language" content="en" />
<link rel="stylesheet" href="doxygen.css">
<title>TreeView</title>
<script type="text/javascript">
<!-- // Hide script from old browsers
function toggleFolder(id, imageNode)
{
var folder = document.getElementById(id);
var l = imageNode.src.length;
if (imageNode.src.substring(l-20,l)=="ftv2folderclosed.png" ||
imageNode.src.substring(l-18,l)=="ftv2folderopen.png")
{
imageNode = imageNode.previousSibling;
l = imageNode.src.length;
}
if (folder == null)
{
}
else if (folder.style.display == "block")
{
if (imageNode != null)
{
imageNode.nextSibling.src = "ftv2folderclosed.png";
if (imageNode.src.substring(l-13,l) == "ftv2mnode.png")
{
imageNode.src = "ftv2pnode.png";
}
else if (imageNode.src.substring(l-17,l) == "ftv2mlastnode.png")
{
imageNode.src = "ftv2plastnode.png";
}
}
folder.style.display = "none";
}
else
{
if (imageNode != null)
{
imageNode.nextSibling.src = "ftv2folderopen.png";
if (imageNode.src.substring(l-13,l) == "ftv2pnode.png")
{
imageNode.src = "ftv2mnode.png";
}
else if (imageNode.src.substring(l-17,l) == "ftv2plastnode.png")
{
imageNode.src = "ftv2mlastnode.png";
}
}
folder.style.display = "block";
}
}
// End script hiding -->
</script>
</head>
<body class="ftvtree">
<div class="directory">
<h3>glcd</h3>
<div style="display: block;">
<p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder1', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder1', this)"/><a class="el" href="files.html" target="basefrm">File List</a></p>
<div id="folder1">
<p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="button_8h.html" target="basefrm">button.h</a></p>
<p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="main_8c.html" target="basefrm">main.c</a></p>
<p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="lc7981_8c.html" target="basefrm">include/lc7981.c</a></p>
<p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="lc7981_8h.html" target="basefrm">include/lc7981.h</a></p>
</div>
<p><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="globals.html" target="basefrm">Globals</a></p>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,2 @@
\section{Debug/include/lc7981.d File Reference}
\label{Debug_2include_2lc7981_8d}\index{Debug/include/lc7981.d@{Debug/include/lc7981.d}}

View File

@ -0,0 +1,2 @@
\section{Debug/main.d File Reference}
\label{Debug_2main_8d}\index{Debug/main.d@{Debug/main.d}}

BIN
doc/latex/FreeSans.ttf Normal file

Binary file not shown.

19
doc/latex/Makefile Normal file
View File

@ -0,0 +1,19 @@
all: clean refman.pdf
pdf: refman.pdf
refman.pdf: refman.tex
pdflatex refman.tex
makeindex refman.idx
pdflatex refman.tex
latex_count=5 ; \
while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
do \
echo "Rerunning latex...." ;\
pdflatex refman.tex ;\
latex_count=`expr $$latex_count - 1` ;\
done
clean:
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf

View File

@ -0,0 +1,2 @@
\section{Release/include/lc7981.d File Reference}
\label{Release_2include_2lc7981_8d}\index{Release/include/lc7981.d@{Release/include/lc7981.d}}

View File

@ -0,0 +1,2 @@
\section{Release/main.d File Reference}
\label{Release_2main_8d}\index{Release/main.d@{Release/main.d}}

16
doc/latex/button_8h.tex Normal file
View File

@ -0,0 +1,16 @@
\section{button.h File Reference}
\label{button_8h}\index{button.h@{button.h}}
{\tt \#include $<$avr/pgmspace.h$>$}\par
\subsection*{Variables}
\begin{CompactItemize}
\item
const uint8\_\-t bitmap[$\,$] {\bf PROGMEM}
\end{CompactItemize}
\subsection{Variable Documentation}
\index{button.h@{button.h}!PROGMEM@{PROGMEM}}
\index{PROGMEM@{PROGMEM}!button.h@{button.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}const uint8\_\-t bitmap [$\,$] {\bf PROGMEM}}\label{button_8h_1ca6393a353d3dde5511786a4d7cc139}

78
doc/latex/doxygen.sty Normal file
View File

@ -0,0 +1,78 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{doxygen}
\RequirePackage{calc}
\RequirePackage{array}
\pagestyle{fancyplain}
\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\lhead[\fancyplain{}{\bfseries\thepage}]
{\fancyplain{}{\bfseries\rightmark}}
\rhead[\fancyplain{}{\bfseries\leftmark}]
{\fancyplain{}{\bfseries\thepage}}
\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Sat May 16 13:46:33 2009 for glcd by Doxygen }]{}
\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Sat May 16 13:46:33 2009 for glcd by Doxygen }}
\cfoot{}
\newenvironment{Code}
{\footnotesize}
{\normalsize}
\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})}
\newenvironment{DocInclude}
{\footnotesize}
{\normalsize}
\newenvironment{VerbInclude}
{\footnotesize}
{\normalsize}
\newenvironment{Image}
{\begin{figure}[H]}
{\end{figure}}
\newenvironment{ImageNoCaption}{}{}
\newenvironment{CompactList}
{\begin{list}{}{
\setlength{\leftmargin}{0.5cm}
\setlength{\itemsep}{0pt}
\setlength{\parsep}{0pt}
\setlength{\topsep}{0pt}
\renewcommand{\makelabel}{\hfill}}}
{\end{list}}
\newenvironment{CompactItemize}
{
\begin{itemize}
\setlength{\itemsep}{-3pt}
\setlength{\parsep}{0pt}
\setlength{\topsep}{0pt}
\setlength{\partopsep}{0pt}
}
{\end{itemize}}
\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}
\newlength{\tmplength}
\newenvironment{TabularC}[1]
{
\setlength{\tmplength}
{\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}
\par\begin{tabular*}{\linewidth}
{*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}
}
{\end{tabular*}\par}
\newcommand{\entrylabel}[1]{
{\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\vspace{1.5\baselineskip}}}}
\newenvironment{Desc}
{\begin{list}{}
{
\settowidth{\labelwidth}{40pt}
\setlength{\leftmargin}{\labelwidth}
\setlength{\parsep}{0pt}
\setlength{\itemsep}{-4pt}
\renewcommand{\makelabel}{\entrylabel}
}
}
{\end{list}}
\newenvironment{Indent}
{\begin{list}{}{\setlength{\leftmargin}{0.5cm}}
\item[]\ignorespaces}
{\unskip\end{list}}
\setlength{\parindent}{0cm}
\setlength{\parskip}{0.2cm}
\addtocounter{secnumdepth}{1}
\sloppy
\usepackage[T1]{fontenc}

7
doc/latex/files.tex Normal file
View File

@ -0,0 +1,7 @@
\section{File List}
Here is a list of all files with brief descriptions:\begin{CompactList}
\item\contentsline{section}{{\bf button.h} }{\pageref{button_8h}}{}
\item\contentsline{section}{{\bf main.c} }{\pageref{main_8c}}{}
\item\contentsline{section}{include/{\bf lc7981.c} }{\pageref{lc7981_8c}}{}
\item\contentsline{section}{include/{\bf lc7981.h} }{\pageref{lc7981_8h}}{}
\end{CompactList}

139
doc/latex/lc7981_8c.tex Normal file
View File

@ -0,0 +1,139 @@
\section{include/lc7981.c File Reference}
\label{lc7981_8c}\index{include/lc7981.c@{include/lc7981.c}}
{\tt \#include \char`\"{}lc7981.h\char`\"{}}\par
\subsection*{Functions}
\begin{CompactItemize}
\item
void {\bf lcd\_\-init} (uint8\_\-t mode)
\begin{CompactList}\small\item\em lcd\_\-init set the to default values. \item\end{CompactList}\item
void {\bf lcd\_\-write\_\-command} (uint8\_\-t cmd, uint8\_\-t data)
\begin{CompactList}\small\item\em Writes a command and a data byte to the lcd. \item\end{CompactList}\item
uint8\_\-t {\bf lcd\_\-read\_\-byte} ()
\begin{CompactList}\small\item\em Reads a byte from the display memory. \item\end{CompactList}\item
void {\bf lcd\_\-strobe} ()
\begin{CompactList}\small\item\em Generates the strobe signal for writing data. \item\end{CompactList}\item
void {\bf lcd\_\-clear} ()
\begin{CompactList}\small\item\em Clears the display by setting the whole memory to 0. \item\end{CompactList}\item
void {\bf lcd\_\-write\_\-text} (char $\ast$txt)
\item
void {\bf lcd\_\-gotoxy} (uint8\_\-t x, uint8\_\-t y)
\begin{CompactList}\small\item\em Set the display cursor to a specific location. \item\end{CompactList}\item
void {\bf lcd\_\-plot\_\-pixel} (uint8\_\-t x, uint8\_\-t y, uint8\_\-t set)
\begin{CompactList}\small\item\em set or unset a pixel at the specified location \item\end{CompactList}\item
void {\bf lcd\_\-plot\_\-bitmap} (uint8\_\-t x\_\-off, uint8\_\-t y\_\-off, const uint8\_\-t $\ast$bitmap, uint8\_\-t w, uint8\_\-t h)
\end{CompactItemize}
\subsection*{Variables}
\begin{CompactItemize}
\item
uint8\_\-t {\bf lcd\_\-mode}
\begin{CompactList}\small\item\em Currently used mode, can be text or graphic. \item\end{CompactList}\item
uint8\_\-t {\bf lcd\_\-curline}
\begin{CompactList}\small\item\em Current line. Used for scrolling in text mode. \item\end{CompactList}\end{CompactItemize}
\subsection{Function Documentation}
\index{lc7981.c@{lc7981.c}!lcd\_\-clear@{lcd\_\-clear}}
\index{lcd\_\-clear@{lcd\_\-clear}!lc7981.c@{lc7981.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-clear ()\hspace{0.3cm}{\tt [inline]}}\label{lc7981_8c_35c08b1fa742e650f4873939707b893b}
Clears the display by setting the whole memory to 0.
\index{lc7981.c@{lc7981.c}!lcd\_\-gotoxy@{lcd\_\-gotoxy}}
\index{lcd\_\-gotoxy@{lcd\_\-gotoxy}!lc7981.c@{lc7981.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-gotoxy (uint8\_\-t {\em x}, \/ uint8\_\-t {\em y})\hspace{0.3cm}{\tt [inline]}}\label{lc7981_8c_dbf47a5efdf02367ded1ebf8f9edb5fe}
Set the display cursor to a specific location.
Right now this does only work in text mode, since there's no need for it now in graphics mode. \par
If the x and y values are to big, the function does nothing.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em x}]the horizontal cursorposition (starts at 0) \item[{\em y}]the vertical cursorposition (starts at 0) \end{description}
\end{Desc}
\index{lc7981.c@{lc7981.c}!lcd\_\-init@{lcd\_\-init}}
\index{lcd\_\-init@{lcd\_\-init}!lc7981.c@{lc7981.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-init (uint8\_\-t {\em mode})}\label{lc7981_8c_9b18aca098d68e55bd7dd4b83f4f36e9}
lcd\_\-init set the to default values.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em mode}]LCD\_\-TEXT for text mode and LCD\_\-GRAPHIC for graphic mode \end{description}
\end{Desc}
\index{lc7981.c@{lc7981.c}!lcd\_\-plot\_\-bitmap@{lcd\_\-plot\_\-bitmap}}
\index{lcd\_\-plot\_\-bitmap@{lcd\_\-plot\_\-bitmap}!lc7981.c@{lc7981.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-plot\_\-bitmap (uint8\_\-t {\em x\_\-off}, \/ uint8\_\-t {\em y\_\-off}, \/ const uint8\_\-t $\ast$ {\em bitmap}, \/ uint8\_\-t {\em w}, \/ uint8\_\-t {\em h})}\label{lc7981_8c_f3b584ee8235c6ed4ebefc50f8a95915}
\index{lc7981.c@{lc7981.c}!lcd\_\-plot\_\-pixel@{lcd\_\-plot\_\-pixel}}
\index{lcd\_\-plot\_\-pixel@{lcd\_\-plot\_\-pixel}!lc7981.c@{lc7981.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-plot\_\-pixel (uint8\_\-t {\em x}, \/ uint8\_\-t {\em y}, \/ uint8\_\-t {\em set})}\label{lc7981_8c_735111507ed83172f58d5af2953e31c6}
set or unset a pixel at the specified location
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em x}]horizontal position of the pixel (starts at 0) \item[{\em y}]horizontal position of the pixel (starts at 0) \item[{\em set}]can be PIXEL\_\-ON or PIXEL\_\-OFF \end{description}
\end{Desc}
\index{lc7981.c@{lc7981.c}!lcd\_\-read\_\-byte@{lcd\_\-read\_\-byte}}
\index{lcd\_\-read\_\-byte@{lcd\_\-read\_\-byte}!lc7981.c@{lc7981.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}uint8\_\-t lcd\_\-read\_\-byte ()\hspace{0.3cm}{\tt [inline]}}\label{lc7981_8c_6334333537ad1d0bd51cba1e80f32e74}
Reads a byte from the display memory.
lcd\_\-gotoxy can be used to set the location. Important : lcd\_\-gotoxy doesn't work in graphics mode yet.
\begin{Desc}
\item[Returns:]the byte which has been read \end{Desc}
\begin{Desc}
\item[See also:]\doxyref{lcd\_\-gotoxy}{p.}{lc7981_8h_dbf47a5efdf02367ded1ebf8f9edb5fe} \end{Desc}
\index{lc7981.c@{lc7981.c}!lcd\_\-strobe@{lcd\_\-strobe}}
\index{lcd\_\-strobe@{lcd\_\-strobe}!lc7981.c@{lc7981.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-strobe ()\hspace{0.3cm}{\tt [inline]}}\label{lc7981_8c_b4f286d6a313df7a5f692e0b4a9509ad}
Generates the strobe signal for writing data.
This function is meant for internal usage only. \index{lc7981.c@{lc7981.c}!lcd\_\-write\_\-command@{lcd\_\-write\_\-command}}
\index{lcd\_\-write\_\-command@{lcd\_\-write\_\-command}!lc7981.c@{lc7981.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-write\_\-command (uint8\_\-t {\em cmd}, \/ uint8\_\-t {\em data})\hspace{0.3cm}{\tt [inline]}}\label{lc7981_8c_b69146a9179fc5b5deef3fc61cf0208c}
Writes a command and a data byte to the lcd.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em cmd}]the command byte \item[{\em data}]the data that is going to be written after the command \end{description}
\end{Desc}
\index{lc7981.c@{lc7981.c}!lcd\_\-write\_\-text@{lcd\_\-write\_\-text}}
\index{lcd\_\-write\_\-text@{lcd\_\-write\_\-text}!lc7981.c@{lc7981.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-write\_\-text (char $\ast$ {\em txt})}\label{lc7981_8c_30251238a49999658455fdb0233757fb}
\subsection{Variable Documentation}
\index{lc7981.c@{lc7981.c}!lcd\_\-curline@{lcd\_\-curline}}
\index{lcd\_\-curline@{lcd\_\-curline}!lc7981.c@{lc7981.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}uint8\_\-t {\bf lcd\_\-curline}}\label{lc7981_8c_76f8e26cf50274635b544f68752b2a0f}
Current line. Used for scrolling in text mode.
\index{lc7981.c@{lc7981.c}!lcd\_\-mode@{lcd\_\-mode}}
\index{lcd\_\-mode@{lcd\_\-mode}!lc7981.c@{lc7981.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}uint8\_\-t {\bf lcd\_\-mode}}\label{lc7981_8c_a29c0577fe01129f48b5b21301d3ea49}
Currently used mode, can be text or graphic.

277
doc/latex/lc7981_8h.tex Normal file
View File

@ -0,0 +1,277 @@
\section{include/lc7981.h File Reference}
\label{lc7981_8h}\index{include/lc7981.h@{include/lc7981.h}}
{\tt \#include $<$avr/io.h$>$}\par
{\tt \#include $<$util/delay.h$>$}\par
{\tt \#include $<$avr/pgmspace.h$>$}\par
\subsection*{Defines}
\begin{CompactItemize}
\item
\#define {\bf LC7981\_\-H\_\-}~LC7981\_\-H\_\-
\item
\#define {\bf LCD\_\-CTRL}~PORTC
\item
\#define {\bf LCD\_\-CRTL\_\-DDR}~DDRC
\item
\#define {\bf LCD\_\-RS}~PC4
\item
\#define {\bf LCD\_\-RW}~PC2
\item
\#define {\bf LCD\_\-EN}~PC0
\item
\#define {\bf LCD\_\-DATA}~PORTD
\item
\#define {\bf LCD\_\-DATA\_\-DDR}~DDRD
\item
\#define {\bf lcd\_\-rs\_\-high}()~(LCD\_\-CTRL $|$= (1 $<$$<$ LCD\_\-RS))
\item
\#define {\bf lcd\_\-rs\_\-low}()~(LCD\_\-CTRL \&= $\sim$(1 $<$$<$ LCD\_\-RS))
\item
\#define {\bf lcd\_\-rw\_\-high}()~(LCD\_\-CTRL $|$= (1 $<$$<$ LCD\_\-RW))
\item
\#define {\bf lcd\_\-rw\_\-low}()~(LCD\_\-CTRL \&= $\sim$(1 $<$$<$ LCD\_\-RW))
\item
\#define {\bf lcd\_\-en\_\-high}()~(LCD\_\-CTRL $|$= (1 $<$$<$ LCD\_\-EN))
\item
\#define {\bf lcd\_\-en\_\-low}()~(LCD\_\-CTRL \&= $\sim$(1 $<$$<$ LCD\_\-EN))
\item
\#define {\bf LCD\_\-TEXT}~0
\item
\#define {\bf LCD\_\-TEXT\_\-LINES}~10
\item
\#define {\bf LCD\_\-TEXT\_\-COLUMNS}~26
\item
\#define {\bf LCD\_\-GRAPHIC}~1
\item
\#define {\bf LCD\_\-GRAPHIC\_\-WIDTH}~160
\item
\#define {\bf LCD\_\-GRAPHIC\_\-HEIGHT}~80
\item
\#define {\bf PIXEL\_\-ON}~1
\item
\#define {\bf PIXEL\_\-OFF}~0
\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item
void {\bf lcd\_\-init} (uint8\_\-t mode)
\begin{CompactList}\small\item\em lcd\_\-init set the to default values. \item\end{CompactList}\item
void {\bf lcd\_\-clear} ()
\begin{CompactList}\small\item\em Clears the display by setting the whole memory to 0. \item\end{CompactList}\item
void {\bf lcd\_\-write\_\-text} (char $\ast$txt)
\item
void {\bf lcd\_\-gotoxy} (uint8\_\-t x, uint8\_\-t y)
\begin{CompactList}\small\item\em Set the display cursor to a specific location. \item\end{CompactList}\item
void {\bf lcd\_\-plot\_\-pixel} (uint8\_\-t x, uint8\_\-t y, uint8\_\-t set)
\begin{CompactList}\small\item\em set or unset a pixel at the specified location \item\end{CompactList}\item
void {\bf lcd\_\-plot\_\-bitmap} (uint8\_\-t x, uint8\_\-t y, const uint8\_\-t $\ast$bitmap, uint8\_\-t w, uint8\_\-t h)
\item
void {\bf lcd\_\-strobe} ()
\begin{CompactList}\small\item\em Generates the strobe signal for writing data. \item\end{CompactList}\item
void {\bf lcd\_\-write\_\-command} (uint8\_\-t cmd, uint8\_\-t data)
\begin{CompactList}\small\item\em Writes a command and a data byte to the lcd. \item\end{CompactList}\item
uint8\_\-t {\bf lcd\_\-read\_\-byte} ()
\begin{CompactList}\small\item\em Reads a byte from the display memory. \item\end{CompactList}\end{CompactItemize}
\subsection{Define Documentation}
\index{lc7981.h@{lc7981.h}!LC7981\_\-H\_\-@{LC7981\_\-H\_\-}}
\index{LC7981\_\-H\_\-@{LC7981\_\-H\_\-}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define LC7981\_\-H\_\-~LC7981\_\-H\_\-}\label{lc7981_8h_e6ff861bd55f4dc46f25f5f6abfca15f}
\index{lc7981.h@{lc7981.h}!LCD\_\-CRTL\_\-DDR@{LCD\_\-CRTL\_\-DDR}}
\index{LCD\_\-CRTL\_\-DDR@{LCD\_\-CRTL\_\-DDR}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define LCD\_\-CRTL\_\-DDR~DDRC}\label{lc7981_8h_4b6c8400da9a1ca3d4d83f3ef1f9c34a}
\index{lc7981.h@{lc7981.h}!LCD\_\-CTRL@{LCD\_\-CTRL}}
\index{LCD\_\-CTRL@{LCD\_\-CTRL}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define LCD\_\-CTRL~PORTC}\label{lc7981_8h_8e945df7ca614325cafa08258e82a63c}
\index{lc7981.h@{lc7981.h}!LCD\_\-DATA@{LCD\_\-DATA}}
\index{LCD\_\-DATA@{LCD\_\-DATA}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define LCD\_\-DATA~PORTD}\label{lc7981_8h_25e9d818788f36ed74d7c4579f87f2a6}
\index{lc7981.h@{lc7981.h}!LCD\_\-DATA\_\-DDR@{LCD\_\-DATA\_\-DDR}}
\index{LCD\_\-DATA\_\-DDR@{LCD\_\-DATA\_\-DDR}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define LCD\_\-DATA\_\-DDR~DDRD}\label{lc7981_8h_0c114e723aa4c162c415fb6d4d963dd7}
\index{lc7981.h@{lc7981.h}!LCD\_\-EN@{LCD\_\-EN}}
\index{LCD\_\-EN@{LCD\_\-EN}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define LCD\_\-EN~PC0}\label{lc7981_8h_1640ffbc0d8ec0f7edb04a2b93918072}
\index{lc7981.h@{lc7981.h}!lcd\_\-en\_\-high@{lcd\_\-en\_\-high}}
\index{lcd\_\-en\_\-high@{lcd\_\-en\_\-high}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define lcd\_\-en\_\-high()~(LCD\_\-CTRL $|$= (1 $<$$<$ LCD\_\-EN))}\label{lc7981_8h_e14be306d3620577abc8613d40401b04}
\index{lc7981.h@{lc7981.h}!lcd\_\-en\_\-low@{lcd\_\-en\_\-low}}
\index{lcd\_\-en\_\-low@{lcd\_\-en\_\-low}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define lcd\_\-en\_\-low()~(LCD\_\-CTRL \&= $\sim$(1 $<$$<$ LCD\_\-EN))}\label{lc7981_8h_d8dcdb36a9410fd96b2c936b7c9355dd}
\index{lc7981.h@{lc7981.h}!LCD\_\-GRAPHIC@{LCD\_\-GRAPHIC}}
\index{LCD\_\-GRAPHIC@{LCD\_\-GRAPHIC}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define LCD\_\-GRAPHIC~1}\label{lc7981_8h_dfaedf8da8e73d39a98d709b519a3117}
\index{lc7981.h@{lc7981.h}!LCD\_\-GRAPHIC\_\-HEIGHT@{LCD\_\-GRAPHIC\_\-HEIGHT}}
\index{LCD\_\-GRAPHIC\_\-HEIGHT@{LCD\_\-GRAPHIC\_\-HEIGHT}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define LCD\_\-GRAPHIC\_\-HEIGHT~80}\label{lc7981_8h_70265c4f840ef78872243e91c923af2f}
\index{lc7981.h@{lc7981.h}!LCD\_\-GRAPHIC\_\-WIDTH@{LCD\_\-GRAPHIC\_\-WIDTH}}
\index{LCD\_\-GRAPHIC\_\-WIDTH@{LCD\_\-GRAPHIC\_\-WIDTH}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define LCD\_\-GRAPHIC\_\-WIDTH~160}\label{lc7981_8h_51e83be6f6929f2a29d5467cd937dfc6}
\index{lc7981.h@{lc7981.h}!LCD\_\-RS@{LCD\_\-RS}}
\index{LCD\_\-RS@{LCD\_\-RS}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define LCD\_\-RS~PC4}\label{lc7981_8h_4781e073871c6f27f89b9463ad3a4ed1}
\index{lc7981.h@{lc7981.h}!lcd\_\-rs\_\-high@{lcd\_\-rs\_\-high}}
\index{lcd\_\-rs\_\-high@{lcd\_\-rs\_\-high}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define lcd\_\-rs\_\-high()~(LCD\_\-CTRL $|$= (1 $<$$<$ LCD\_\-RS))}\label{lc7981_8h_795b48274d3f80bc744a707b67fd93e9}
\index{lc7981.h@{lc7981.h}!lcd\_\-rs\_\-low@{lcd\_\-rs\_\-low}}
\index{lcd\_\-rs\_\-low@{lcd\_\-rs\_\-low}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define lcd\_\-rs\_\-low()~(LCD\_\-CTRL \&= $\sim$(1 $<$$<$ LCD\_\-RS))}\label{lc7981_8h_6edb13d59460246fb4cc32ada1c9f4a8}
\index{lc7981.h@{lc7981.h}!LCD\_\-RW@{LCD\_\-RW}}
\index{LCD\_\-RW@{LCD\_\-RW}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define LCD\_\-RW~PC2}\label{lc7981_8h_26089a10ddd59a0dc7283c19ccc02533}
\index{lc7981.h@{lc7981.h}!lcd\_\-rw\_\-high@{lcd\_\-rw\_\-high}}
\index{lcd\_\-rw\_\-high@{lcd\_\-rw\_\-high}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define lcd\_\-rw\_\-high()~(LCD\_\-CTRL $|$= (1 $<$$<$ LCD\_\-RW))}\label{lc7981_8h_d0ce3cd9b481370ad4de36eff08440c8}
\index{lc7981.h@{lc7981.h}!lcd\_\-rw\_\-low@{lcd\_\-rw\_\-low}}
\index{lcd\_\-rw\_\-low@{lcd\_\-rw\_\-low}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define lcd\_\-rw\_\-low()~(LCD\_\-CTRL \&= $\sim$(1 $<$$<$ LCD\_\-RW))}\label{lc7981_8h_7f5ebe0ca71b1298a7d3423850cc82b1}
\index{lc7981.h@{lc7981.h}!LCD\_\-TEXT@{LCD\_\-TEXT}}
\index{LCD\_\-TEXT@{LCD\_\-TEXT}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define LCD\_\-TEXT~0}\label{lc7981_8h_90a69d37f5c80f3ded970acf2dacf4c0}
\index{lc7981.h@{lc7981.h}!LCD\_\-TEXT\_\-COLUMNS@{LCD\_\-TEXT\_\-COLUMNS}}
\index{LCD\_\-TEXT\_\-COLUMNS@{LCD\_\-TEXT\_\-COLUMNS}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define LCD\_\-TEXT\_\-COLUMNS~26}\label{lc7981_8h_82f0a630f3c41b5233f2ceb07c7dd736}
\index{lc7981.h@{lc7981.h}!LCD\_\-TEXT\_\-LINES@{LCD\_\-TEXT\_\-LINES}}
\index{LCD\_\-TEXT\_\-LINES@{LCD\_\-TEXT\_\-LINES}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define LCD\_\-TEXT\_\-LINES~10}\label{lc7981_8h_720ef60606ac38ca3a5ab96a9c2b8168}
\index{lc7981.h@{lc7981.h}!PIXEL\_\-OFF@{PIXEL\_\-OFF}}
\index{PIXEL\_\-OFF@{PIXEL\_\-OFF}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define PIXEL\_\-OFF~0}\label{lc7981_8h_cda2f1b1cf6310700d0d91643c40e068}
\index{lc7981.h@{lc7981.h}!PIXEL\_\-ON@{PIXEL\_\-ON}}
\index{PIXEL\_\-ON@{PIXEL\_\-ON}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define PIXEL\_\-ON~1}\label{lc7981_8h_eb2d212a26da4a5a4d3231b2773023e5}
\subsection{Function Documentation}
\index{lc7981.h@{lc7981.h}!lcd\_\-clear@{lcd\_\-clear}}
\index{lcd\_\-clear@{lcd\_\-clear}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-clear ()\hspace{0.3cm}{\tt [inline]}}\label{lc7981_8h_35c08b1fa742e650f4873939707b893b}
Clears the display by setting the whole memory to 0.
\index{lc7981.h@{lc7981.h}!lcd\_\-gotoxy@{lcd\_\-gotoxy}}
\index{lcd\_\-gotoxy@{lcd\_\-gotoxy}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-gotoxy (uint8\_\-t {\em x}, \/ uint8\_\-t {\em y})\hspace{0.3cm}{\tt [inline]}}\label{lc7981_8h_dbf47a5efdf02367ded1ebf8f9edb5fe}
Set the display cursor to a specific location.
Right now this does only work in text mode, since there's no need for it now in graphics mode. \par
If the x and y values are to big, the function does nothing.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em x}]the horizontal cursorposition (starts at 0) \item[{\em y}]the vertical cursorposition (starts at 0) \end{description}
\end{Desc}
\index{lc7981.h@{lc7981.h}!lcd\_\-init@{lcd\_\-init}}
\index{lcd\_\-init@{lcd\_\-init}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-init (uint8\_\-t {\em mode})}\label{lc7981_8h_9b18aca098d68e55bd7dd4b83f4f36e9}
lcd\_\-init set the to default values.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em mode}]LCD\_\-TEXT for text mode and LCD\_\-GRAPHIC for graphic mode \end{description}
\end{Desc}
\index{lc7981.h@{lc7981.h}!lcd\_\-plot\_\-bitmap@{lcd\_\-plot\_\-bitmap}}
\index{lcd\_\-plot\_\-bitmap@{lcd\_\-plot\_\-bitmap}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-plot\_\-bitmap (uint8\_\-t {\em x}, \/ uint8\_\-t {\em y}, \/ const uint8\_\-t $\ast$ {\em bitmap}, \/ uint8\_\-t {\em w}, \/ uint8\_\-t {\em h})}\label{lc7981_8h_175d691feb304584c8c18e6456e07401}
\index{lc7981.h@{lc7981.h}!lcd\_\-plot\_\-pixel@{lcd\_\-plot\_\-pixel}}
\index{lcd\_\-plot\_\-pixel@{lcd\_\-plot\_\-pixel}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-plot\_\-pixel (uint8\_\-t {\em x}, \/ uint8\_\-t {\em y}, \/ uint8\_\-t {\em set})}\label{lc7981_8h_735111507ed83172f58d5af2953e31c6}
set or unset a pixel at the specified location
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em x}]horizontal position of the pixel (starts at 0) \item[{\em y}]horizontal position of the pixel (starts at 0) \item[{\em set}]can be PIXEL\_\-ON or PIXEL\_\-OFF \end{description}
\end{Desc}
\index{lc7981.h@{lc7981.h}!lcd\_\-read\_\-byte@{lcd\_\-read\_\-byte}}
\index{lcd\_\-read\_\-byte@{lcd\_\-read\_\-byte}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}uint8\_\-t lcd\_\-read\_\-byte ()\hspace{0.3cm}{\tt [inline]}}\label{lc7981_8h_6334333537ad1d0bd51cba1e80f32e74}
Reads a byte from the display memory.
lcd\_\-gotoxy can be used to set the location. Important : lcd\_\-gotoxy doesn't work in graphics mode yet.
\begin{Desc}
\item[Returns:]the byte which has been read \end{Desc}
\begin{Desc}
\item[See also:]\doxyref{lcd\_\-gotoxy}{p.}{lc7981_8h_dbf47a5efdf02367ded1ebf8f9edb5fe} \end{Desc}
\index{lc7981.h@{lc7981.h}!lcd\_\-strobe@{lcd\_\-strobe}}
\index{lcd\_\-strobe@{lcd\_\-strobe}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-strobe ()\hspace{0.3cm}{\tt [inline]}}\label{lc7981_8h_b4f286d6a313df7a5f692e0b4a9509ad}
Generates the strobe signal for writing data.
This function is meant for internal usage only. \index{lc7981.h@{lc7981.h}!lcd\_\-write\_\-command@{lcd\_\-write\_\-command}}
\index{lcd\_\-write\_\-command@{lcd\_\-write\_\-command}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-write\_\-command (uint8\_\-t {\em cmd}, \/ uint8\_\-t {\em data})\hspace{0.3cm}{\tt [inline]}}\label{lc7981_8h_b69146a9179fc5b5deef3fc61cf0208c}
Writes a command and a data byte to the lcd.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em cmd}]the command byte \item[{\em data}]the data that is going to be written after the command \end{description}
\end{Desc}
\index{lc7981.h@{lc7981.h}!lcd\_\-write\_\-text@{lcd\_\-write\_\-text}}
\index{lcd\_\-write\_\-text@{lcd\_\-write\_\-text}!lc7981.h@{lc7981.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void lcd\_\-write\_\-text (char $\ast$ {\em txt})}\label{lc7981_8h_30251238a49999658455fdb0233757fb}

20
doc/latex/main_8c.tex Normal file
View File

@ -0,0 +1,20 @@
\section{main.c File Reference}
\label{main_8c}\index{main.c@{main.c}}
{\tt \#include $<$avr/io.h$>$}\par
{\tt \#include $<$stdlib.h$>$}\par
{\tt \#include \char`\"{}include/lc7981.h\char`\"{}}\par
{\tt \#include \char`\"{}button.h\char`\"{}}\par
{\tt \#include \char`\"{}draw\_\-penguin.h\char`\"{}}\par
\subsection*{Functions}
\begin{CompactItemize}
\item
int {\bf main} ()
\end{CompactItemize}
\subsection{Function Documentation}
\index{main.c@{main.c}!main@{main}}
\index{main@{main}!main.c@{main.c}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int main ()}\label{main_8c_e66f6b31b5ad750f1fe042a706a4e3d4}

40
doc/latex/refman.tex Normal file
View File

@ -0,0 +1,40 @@
\documentclass[a4paper]{book}
\usepackage{a4wide}
\usepackage{makeidx}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{multicol}
\usepackage{float}
\usepackage{textcomp}
\usepackage{alltt}
\usepackage{times}
\usepackage[utf8]{inputenc}
\usepackage{doxygen}
\makeindex
\setcounter{tocdepth}{1}
\renewcommand{\footrulewidth}{0.4pt}
\begin{document}
\begin{titlepage}
\vspace*{7cm}
\begin{center}
{\Large glcd \\[1ex]\large 0.1beta }\\
\vspace*{1cm}
{\large Generated by Doxygen 1.5.5}\\
\vspace*{0.5cm}
{\small Sat May 16 13:46:33 2009}\\
\end{center}
\end{titlepage}
\clearemptydoublepage
\pagenumbering{roman}
\tableofcontents
\clearemptydoublepage
\pagenumbering{arabic}
\chapter{File Index}
\input{files}
\chapter{File Documentation}
\input{button_8h}
\include{lc7981_8c}
\include{lc7981_8h}
\include{main_8c}
\printindex
\end{document}

1356
glcd.doxyfile Normal file

File diff suppressed because it is too large Load Diff

300
include/lc7981.c Normal file
View File

@ -0,0 +1,300 @@
/*
* lc7981.c
*
* Created on: 01.05.2009
* Author: sebastian
*/
#include "lc7981.h"
uint8_t lcd_mode, //!< Currently used mode, can be text or graphic.
lcd_curline; //!< Current line. Used for scrolling in text mode.
/**
* lcd_init set the to default values.
*
* @param mode LCD_TEXT for text mode and LCD_GRAPHIC for graphic mode
*/
void lcd_init(uint8_t mode) {
LCD_DATA_DDR = 0xFF;
LCD_DATA = 0;
LCD_CRTL_DDR = 0xFF;
//|= (1 << LCD_RS) | (1 << LCD_RW) | (1 << LCD_EN) | (1 << LCD_CS) | (1 << LCD_RST);
LCD_CTRL = 0;
lcd_en_low();
lcd_rs_low();
lcd_rw_low();
if(mode == LCD_TEXT) {
lcd_mode = LCD_TEXT;
lcd_write_command(0x00,0x3C);
lcd_write_command(0x01,0x75);
lcd_write_command(0x02,LCD_TEXT_COLUMNS - 1);
lcd_write_command(0x03,0x4F);
lcd_write_command(0x04,0x07);
lcd_write_command(0x08,0x00);
lcd_write_command(0x09,0x00);
lcd_write_command(0x0A,0x00);
lcd_write_command(0x0B,0x00);
}
else {
lcd_mode = LCD_GRAPHIC;
lcd_write_command(0x00,0x32);
lcd_write_command(0x01,0x07);
lcd_write_command(0x02,(LCD_GRAPHIC_WIDTH / 8)-1);
lcd_write_command(0x03,0x4F);
lcd_write_command(0x08,0x00);
lcd_write_command(0x09,0x00);
lcd_write_command(0x0A,0x00);
lcd_write_command(0x0B,0x00);
}
lcd_clear();
}
/**
* Writes a command and a data byte to the lcd.
*
* @param cmd the command byte
* @param data the data that is going to be written after the command
*/
inline void lcd_write_command(uint8_t cmd, uint8_t data) {
_delay_us(30);
lcd_rw_low();
lcd_rs_high();
LCD_DATA = cmd;
_delay_us(1);
lcd_strobe();
lcd_rs_low();
LCD_DATA = data;
_delay_us(1);
lcd_strobe();
}
/**
* Reads a byte from the display memory.
* lcd_gotoxy can be used to set the location.
* Important : lcd_gotoxy doesn't work in graphics mode yet.
*
* @return the byte which has been read
* @see lcd_gotoxy
*/
inline uint8_t lcd_read_byte() {
uint8_t i,data;
for(i = 0; i < 2; i++) {
_delay_us(30);
lcd_rw_low();
lcd_rs_high();
LCD_DATA = 0x0D;
_delay_us(1);
lcd_en_high();
LCD_DATA_DDR = 0x00;
lcd_rs_low();
lcd_rw_high();
_delay_us(1);
data = (uint8_t) PIND;
lcd_en_low();
LCD_DATA_DDR = 0xFF;
}
return data;
}
/**
* Generates the strobe signal for writing data.
* This function is meant for internal usage only.
*/
inline void lcd_strobe() {
lcd_en_high();
_delay_us(1);
lcd_en_low();
}
/**
* Clears the display by setting the whole memory to 0.
*/
inline void lcd_clear() {
uint16_t i;
if(lcd_mode == LCD_TEXT) {
lcd_write_command(0x0A,0x00);
lcd_write_command(0x0B,0x00);
for(i = 1; i <= LCD_TEXT_LINES * LCD_TEXT_COLUMNS; i++)
lcd_write_command(0x0C,' ');
lcd_write_command(0x0A,0x00);
lcd_write_command(0x0B,0x00);
lcd_curline = 0;
}
else {
lcd_write_command(0x0A,0x00);
lcd_write_command(0x0B,0x00);
for(i = 0; i < ((LCD_GRAPHIC_WIDTH * LCD_GRAPHIC_HEIGHT)/8); i++)
lcd_write_command(0x0C,0x00);
lcd_write_command(0x0A,0x00);
lcd_write_command(0x0B,0x00);
}
}
void lcd_write_text(char *txt) {
uint8_t c,tmp,x,y;
if(lcd_mode == LCD_TEXT) {
c = 0;
while(!(*txt == 0)) {
if(*txt == '\n' || c == LCD_TEXT_COLUMNS) {
if(lcd_curline < LCD_TEXT_LINES - 1) {
lcd_curline++;
c = 0;
lcd_gotoxy(0,lcd_curline);
}
else {
for(y = 1; y < LCD_TEXT_LINES; y++ ) {
for(x = 0; x < LCD_TEXT_COLUMNS; x++) {
lcd_gotoxy(x,y);
tmp = lcd_read_byte();
lcd_gotoxy(x,y-1);
lcd_write_command(0x0C,tmp);
}
}
for(x = 0; x < LCD_TEXT_COLUMNS; x++) {
lcd_write_command(0x0C,' ');
}
lcd_gotoxy(0,LCD_TEXT_LINES-1);
c = 0;
}
}
if(*txt != '\n') {
lcd_write_command(0x0C,*txt);
c++;
}
txt++;
}
}
}
/**
* Set the display cursor to a specific location.
* Right now this does only work in text mode,
* since there's no need for it now in graphics mode. \n
* If the x and y values are to big, the function does nothing.
*
* @param x the horizontal cursorposition (starts at 0)
* @param y the vertical cursorposition (starts at 0)
*
*/
inline void lcd_gotoxy(uint8_t x, uint8_t y) {
uint16_t pos;
if(lcd_mode == LCD_TEXT) {
if((x <= LCD_TEXT_COLUMNS - 1) && (y <= LCD_TEXT_LINES - 1)) {
pos = (y * LCD_TEXT_COLUMNS) + x;
lcd_write_command(0x0A,(uint8_t) pos );
lcd_write_command(0x0B,(uint8_t) (pos >> 8));
lcd_curline = y;
}
}
}
/**
* set or unset a pixel at the specified location
*
* @param x horizontal position of the pixel (starts at 0)
* @param y horizontal position of the pixel (starts at 0)
* @param set can be PIXEL_ON or PIXEL_OFF
*/
void lcd_plot_pixel(uint8_t x, uint8_t y, uint8_t set) {
uint16_t pos;
uint8_t xr;
if((x <= LCD_GRAPHIC_WIDTH - 1) && (y <= LCD_GRAPHIC_HEIGHT - 1)) {
pos = y * (LCD_GRAPHIC_WIDTH / 8) + x / 8;
xr = x % 8;
lcd_write_command(0x0A,(uint8_t) pos );
lcd_write_command(0x0B,(uint8_t) (pos >> 8));
if(set == PIXEL_ON) {
lcd_write_command(0x0F,xr);
}
else {
lcd_write_command(0x0E,xr);
}
}
}
/**
* This function will plot a bitmap with the upper left corner to the given coordinates.
*/
void lcd_plot_bitmap(uint8_t x_off, uint8_t y_off, const uint8_t *bitmap, uint8_t w, uint8_t h) {
uint8_t x,y,cur,curs,sr,dr;
uint16_t pos;
if((x_off <= LCD_GRAPHIC_WIDTH - 1) && (y_off <= LCD_GRAPHIC_HEIGHT - 1)
&& (x_off + w <= LCD_GRAPHIC_WIDTH - 1) && (y_off + h <= LCD_GRAPHIC_HEIGHT - 1)) {
for(y = y_off; y < y_off + h; y++) {
cur = 0;
for(x = x_off - (x_off % 8); x_off + w > x; x++) {
dr = x % 8;
if(dr == 0) {
pos = y * (LCD_GRAPHIC_WIDTH / 8) + x / 8;
lcd_write_command(0x0A,(uint8_t) pos );
lcd_write_command(0x0B,(uint8_t) (pos >> 8));
cur = lcd_read_byte();
}
if((x - x_off) >= 0) {
sr = (x - x_off) % 8;
if(sr == 0) {
curs = pgm_read_byte(bitmap++);
}
cur = cur | ((( curs & (1 << sr)) >> sr) << dr);
}
if(dr == 7) {
pos = y * (LCD_GRAPHIC_WIDTH / 8) + x / 8;
lcd_write_command(0x0A,(uint8_t) pos );
lcd_write_command(0x0B,(uint8_t) (pos >> 8));
lcd_write_command(0x0C,cur);
}
}
if(dr != 7) {
pos = y * (LCD_GRAPHIC_WIDTH / 8) + x / 8;
lcd_write_command(0x0A,(uint8_t) pos );
lcd_write_command(0x0B,(uint8_t) (pos >> 8));
lcd_write_command(0x0C,cur);
}
}
}
}

61
include/lc7981.h Normal file
View File

@ -0,0 +1,61 @@
/*
* lc7981.h
*
* Created on: 01.05.2009
* Author: sebastian
*/
#ifndef LC7981_H_
#define LC7981_H_ LC7981_H_
#include <avr/io.h>
#include <util/delay.h>
#include <avr/pgmspace.h>
#define LCD_CTRL PORTC
#define LCD_CRTL_DDR DDRC
#define LCD_RS PC4
#define LCD_RW PC2
#define LCD_EN PC0
#define LCD_DATA PORTD
#define LCD_DATA_DDR DDRD
// Macros for (un)setting the control pins
#define lcd_rs_high() (LCD_CTRL |= (1 << LCD_RS))
#define lcd_rs_low() (LCD_CTRL &= ~(1 << LCD_RS))
#define lcd_rw_high() (LCD_CTRL |= (1 << LCD_RW))
#define lcd_rw_low() (LCD_CTRL &= ~(1 << LCD_RW))
#define lcd_en_high() (LCD_CTRL |= (1 << LCD_EN))
#define lcd_en_low() (LCD_CTRL &= ~(1 << LCD_EN))
#define LCD_TEXT 0
#define LCD_TEXT_LINES 10
#define LCD_TEXT_COLUMNS 26
#define LCD_GRAPHIC 1
#define LCD_GRAPHIC_WIDTH 160
#define LCD_GRAPHIC_HEIGHT 80
#define PIXEL_ON 1
#define PIXEL_OFF 0
void lcd_init(uint8_t mode);
inline void lcd_clear();
void lcd_write_text(char *txt);
inline void lcd_gotoxy(uint8_t x, uint8_t y);
void lcd_plot_pixel(uint8_t x, uint8_t y, uint8_t set);
void lcd_plot_bitmap(uint8_t x, uint8_t y, const uint8_t *bitmap, uint8_t w, uint8_t h);
inline void lcd_strobe();
inline void lcd_write_command(uint8_t cmd, uint8_t data);
inline uint8_t lcd_read_byte();
#endif /* LC7981_H_ */

59
main.c Normal file
View File

@ -0,0 +1,59 @@
/*
* main.c
*
* Created on: 01.05.2009
* Author: sebastian
*/
#include <avr/io.h>
#include <stdlib.h>
#include "include/lc7981.h"
#include "button.h"
#include "draw_penguin.h"
int main() {
uint8_t x,y;
const uint8_t *button;
lcd_init(LCD_GRAPHIC);
while(1) {
for(y = 1; y <= 32; y++) {
lcd_plot_bitmap(16+y,16,bitmap,32,32);
_delay_ms(500);
lcd_clear();
}
for(y = 31; y > 0; y--) {
lcd_plot_bitmap(16+y,16,bitmap,32,32);
_delay_ms(500);
lcd_clear();
}
}
/*draw_penguin(); */
/*for(i = 0; i <= 8; i++) {
lcd_gotoxy(0,i);
lcd_write_text("Zeile : ");
lcd_write_text(itoa(i,tmp,10));
lcd_write_text("\n");
_delay_ms(100);
}
_delay_ms(100);
lcd_write_text("123456789012345678901234567890\n");
lcd_write_text("Letzte Zeile"); */
return 0;
}