doc/doxygen/html/hcs12_2applicfg_8h-source.html
author etisserant
Mon, 02 Jul 2007 18:22:58 +0200
changeset 236 905677ed00f3
parent 215 f49e5a6b7804
child 240 34654679f262
permissions -rw-r--r--
Full preliminary implementation of TPDO transmit type:
- SYNC (N) (1-240)
- RTR only + SYNC (252)
- RTR only (253)
- EVENT, with timer and inhibit time (254 and 255)

User app have to call sendPDOevent(d) to eventually signal mapped data changes.
Callbacks added to 0x140N, TPDO comm parameters for on the fly timers values change.
TestMasterSlave updated.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>CanFestival: include/hcs12/applicfg.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.1 -->
<div class="tabs">
  <ul>
    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li id="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    <li><a href="globals.html"><span>Globals</span></a></li>
  </ul></div>
<div class="nav">
<a class="el" href="dir_2209bfb26110ae52d50da4cefad5e72f.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_9b4fbd1818b4be2ef59811982235911e.html">hcs12</a></div>
<h1>applicfg.h</h1><a href="hcs12_2applicfg_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">This file is part of CanFestival, a library implementing CanOpen Stack. </span>
<a name="l00003"></a>00003 <span class="comment"></span>
<a name="l00004"></a>00004 <span class="comment">Copyright (C): Edouard TISSERANT and Francis DUPIN</span>
<a name="l00005"></a>00005 <span class="comment"></span>
<a name="l00006"></a>00006 <span class="comment">See COPYING file for copyrights details.</span>
<a name="l00007"></a>00007 <span class="comment"></span>
<a name="l00008"></a>00008 <span class="comment">This library is free software; you can redistribute it and/or</span>
<a name="l00009"></a>00009 <span class="comment">modify it under the terms of the GNU Lesser General Public</span>
<a name="l00010"></a>00010 <span class="comment">License as published by the Free Software Foundation; either</span>
<a name="l00011"></a>00011 <span class="comment">version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00012"></a>00012 <span class="comment"></span>
<a name="l00013"></a>00013 <span class="comment">This library is distributed in the hope that it will be useful,</span>
<a name="l00014"></a>00014 <span class="comment">but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00015"></a>00015 <span class="comment">MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="l00016"></a>00016 <span class="comment">Lesser General Public License for more details.</span>
<a name="l00017"></a>00017 <span class="comment"></span>
<a name="l00018"></a>00018 <span class="comment">You should have received a copy of the GNU Lesser General Public</span>
<a name="l00019"></a>00019 <span class="comment">License along with this library; if not, write to the Free Software</span>
<a name="l00020"></a>00020 <span class="comment">Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</span>
<a name="l00021"></a>00021 <span class="comment">*/</span>
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 <span class="preprocessor">#ifndef __APPLICFG_HC12__</span>
<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#define __APPLICFG_HC12__</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
<a name="l00028"></a>00028 
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;../include/hcs12/asm-m68hc12/portsaccess.h&gt;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &lt;../include/hcs12/asm-m68hc12/ports_def.h&gt;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;../include/hcs12/asm-m68hc12/ports.h&gt;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;../include/hcs12/interrupt.h&gt;</span>
<a name="l00033"></a>00033 
<a name="l00034"></a>00034 
<a name="l00036"></a>00036 <span class="comment">// -----------------------------------------------------</span>
<a name="l00037"></a>00037 <span class="comment">// Test :</span>
<a name="l00038"></a>00038 <span class="comment">// UNS32 v = 0x1234ABCD;</span>
<a name="l00039"></a>00039 <span class="comment">// char *data = &amp;v;</span>
<a name="l00040"></a>00040 <span class="comment">//</span>
<a name="l00041"></a>00041 <span class="comment">// Result for a little_endian architecture :</span>
<a name="l00042"></a>00042 <span class="comment">// data[0] = 0xCD;</span>
<a name="l00043"></a>00043 <span class="comment">// data[1] = 0xAB;</span>
<a name="l00044"></a>00044 <span class="comment">// data[2] = 0x34;</span>
<a name="l00045"></a>00045 <span class="comment">// data[3] = 0x12;</span>
<a name="l00046"></a>00046 <span class="comment">//</span>
<a name="l00047"></a>00047 <span class="comment">// Result for a big_endian architecture :</span>
<a name="l00048"></a>00048 <span class="comment">// data[0] = 0x12;</span>
<a name="l00049"></a>00049 <span class="comment">// data[1] = 0x34;</span>
<a name="l00050"></a>00050 <span class="comment">// data[2] = 0xAB;</span>
<a name="l00051"></a>00051 <span class="comment">// data[3] = 0xCD;</span>
<a name="l00052"></a>00052 
<a name="l00053"></a>00053 <span class="comment">/* CANOPEN_BIG_ENDIAN now defined in config.h*/</span>
<a name="l00054"></a>00054 <span class="preprocessor">#ifndef CANOPEN_BIG_ENDIAN</span>
<a name="l00055"></a><a class="code" href="hcs12_2applicfg_8h.html#751707f06cc1e5a62a109e6ad780b631">00055</a> <span class="preprocessor"></span><span class="preprocessor">#  define CANOPEN_BIG_ENDIAN 1</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00057"></a>00057 <span class="preprocessor"></span>
<a name="l00058"></a>00058 
<a name="l00059"></a>00059 <span class="comment">// Use or not the PLL</span>
<a name="l00060"></a>00060 <span class="comment">//#define USE_PLL</span>
<a name="l00061"></a>00061 
<a name="l00062"></a>00062 <span class="preprocessor">#ifdef USE_PLL</span>
<a name="l00063"></a>00063 <span class="preprocessor"></span><span class="preprocessor">#  define BUS_CLOCK 24 // If the quartz on the board is 16 MHz. If different, change this value</span>
<a name="l00064"></a>00064 <span class="preprocessor"></span><span class="preprocessor">#else </span>
<a name="l00065"></a><a class="code" href="hcs12_2applicfg_8h.html#1caba0e524eb249e9f6bf160b74aa14e">00065</a> <span class="preprocessor"></span><span class="preprocessor">#  define BUS_CLOCK 8  // If the quartz on the board is 16 MHz. If different, change this value</span>
<a name="l00066"></a>00066 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00067"></a>00067 <span class="preprocessor"></span>
<a name="l00069"></a>00069 <span class="comment">// Tested : </span>
<a name="l00070"></a>00070 <span class="comment">//   SERIAL_SCI0_BAUD_RATE 9600      BUS_CLOCK 8   Send OK      Receive not tested</span>
<a name="l00071"></a>00071 <span class="comment">//   SERIAL_SCI0_BAUD_RATE 19200     BUS_CLOCK 8   Send OK      Receive not tested</span>
<a name="l00072"></a>00072 <span class="comment">//   SERIAL_SCI0_BAUD_RATE 38400     BUS_CLOCK 8   Send OK      Receive not tested</span>
<a name="l00073"></a>00073 <span class="comment">//   SERIAL_SCI0_BAUD_RATE 57600     BUS_CLOCK 8   Send Failed  Receive not tested</span>
<a name="l00074"></a>00074 <span class="comment">//   SERIAL_SCI0_BAUD_RATE 115200    BUS_CLOCK 8   Send Failed  Receive not tested</span>
<a name="l00075"></a>00075 
<a name="l00076"></a>00076 <span class="comment">//   SERIAL_SCI0_BAUD_RATE 9600      BUS_CLOCK 24  Send OK      Receive not tested</span>
<a name="l00077"></a>00077 <span class="comment">//   SERIAL_SCI0_BAUD_RATE 19200     BUS_CLOCK 24  Send OK      Receive not tested</span>
<a name="l00078"></a>00078 <span class="comment">//   SERIAL_SCI0_BAUD_RATE 38400     BUS_CLOCK 24  Send OK but init problems     Receive not tested</span>
<a name="l00079"></a>00079 <span class="comment">//   SERIAL_SCI0_BAUD_RATE 57600     BUS_CLOCK 24  Send Failed  Receive not tested</span>
<a name="l00080"></a>00080 <span class="comment">//   SERIAL_SCI0_BAUD_RATE 115200    BUS_CLOCK 24  Send Failed  Receive not tested</span>
<a name="l00081"></a>00081 
<a name="l00082"></a><a class="code" href="hcs12_2applicfg_8h.html#759dabd0f6ef66964bb0b0bf8c426398">00082</a> <span class="preprocessor">#define SERIAL_SCI0_BAUD_RATE 38400</span>
<a name="l00083"></a><a class="code" href="hcs12_2applicfg_8h.html#2831f0cbcc1686e98815825dba49c7f5">00083</a> <span class="preprocessor"></span><span class="preprocessor">#define SERIAL_SCI1_BAUD_RATE 9600</span>
<a name="l00084"></a>00084 <span class="preprocessor"></span>
<a name="l00085"></a>00085 
<a name="l00086"></a>00086 
<a name="l00087"></a>00087 
<a name="l00088"></a>00088 
<a name="l00089"></a>00089 
<a name="l00090"></a>00090 <span class="comment">// Several hardware definitions functions</span>
<a name="l00091"></a>00091 <span class="comment">// --------------------------------------</span>
<a name="l00092"></a>00092 
<a name="l00093"></a>00093 
<a name="l00095"></a>00095 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="canOpenDriver_8c.html#f86db4b817c1a59a819cbdd51779bfaa">initSCI_0</a> (<span class="keywordtype">void</span>);
<a name="l00096"></a>00096 
<a name="l00098"></a>00098 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="canOpenDriver_8c.html#b56fa1754706a57059103710178bdb68">initSCI_1</a> (<span class="keywordtype">void</span>);
<a name="l00099"></a>00099 
<a name="l00110"></a>00110 <span class="keyword">extern</span> <span class="keywordtype">char</span> *
<a name="l00111"></a>00111 <a class="code" href="canOpenDriver_8c.html#2a9aef0efc98c5b41ef97ef91ad403e5">hex_convert</a> (<span class="keywordtype">char</span> *buf, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> value, <span class="keywordtype">char</span> lastCar);
<a name="l00112"></a>00112 
<a name="l00115"></a>00115 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="canOpenDriver_8c.html#6e3075ae435e83aefc018e5218c197d0">printSCI_str</a> (<span class="keywordtype">char</span> sci, <span class="keyword">const</span> <span class="keywordtype">char</span> * str); 
<a name="l00116"></a>00116 
<a name="l00119"></a>00119 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="canOpenDriver_8c.html#80f5dbbc046cba0e5e9cf2bcc4c1e78e">printSCI_nbr</a> (<span class="keywordtype">char</span> sci, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> nbr, <span class="keywordtype">char</span> lastCar);
<a name="l00120"></a>00120 
<a name="l00123"></a>00123 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="canOpenDriver_8c.html#51e71c727eb7a49e2fde962a3d190a6b">initPLL</a> (<span class="keywordtype">void</span>);
<a name="l00124"></a>00124 
<a name="l00126"></a>00126 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="canOpenDriver_8c.html#c71399958d35a7f703416f025603ee26">initHCS12</a> (<span class="keywordtype">void</span>);
<a name="l00127"></a>00127 
<a name="l00128"></a>00128 <span class="comment">// Integers</span>
<a name="l00129"></a><a class="code" href="hcs12_2applicfg_8h.html#662ebb8e51dc6acbd8850e22f172c5bf">00129</a> <span class="preprocessor">#define INTEGER8 signed char</span>
<a name="l00130"></a><a class="code" href="hcs12_2applicfg_8h.html#ef74ac6cf2d7e6e7ceb25199c0a4e8d9">00130</a> <span class="preprocessor"></span><span class="preprocessor">#define INTEGER16 short</span>
<a name="l00131"></a><a class="code" href="hcs12_2applicfg_8h.html#b5cc60bcec9bf20f8565a80fe68ab8f6">00131</a> <span class="preprocessor"></span><span class="preprocessor">#define INTEGER24</span>
<a name="l00132"></a><a class="code" href="hcs12_2applicfg_8h.html#88a720c5453c6335aa3784ee788ec8cd">00132</a> <span class="preprocessor"></span><span class="preprocessor">#define INTEGER32 long</span>
<a name="l00133"></a><a class="code" href="hcs12_2applicfg_8h.html#161c8f6e6a63ce9ed9966896f211b8a8">00133</a> <span class="preprocessor"></span><span class="preprocessor">#define INTEGER40</span>
<a name="l00134"></a><a class="code" href="hcs12_2applicfg_8h.html#0c5278d056153e1ff380e759c884f479">00134</a> <span class="preprocessor"></span><span class="preprocessor">#define INTEGER48</span>
<a name="l00135"></a><a class="code" href="hcs12_2applicfg_8h.html#9543c1a090746b76b7972dcb7cc7483e">00135</a> <span class="preprocessor"></span><span class="preprocessor">#define INTEGER56</span>
<a name="l00136"></a><a class="code" href="hcs12_2applicfg_8h.html#4e3182e4d79fdb99c05d57a3abe5ae4e">00136</a> <span class="preprocessor"></span><span class="preprocessor">#define INTEGER64</span>
<a name="l00137"></a>00137 <span class="preprocessor"></span> 
<a name="l00138"></a>00138 <span class="comment">// Unsigned integers</span>
<a name="l00139"></a><a class="code" href="hcs12_2applicfg_8h.html#539234687760592d01a8b0d3357bc00e">00139</a> <span class="preprocessor">#define UNS8   unsigned char</span>
<a name="l00140"></a><a class="code" href="hcs12_2applicfg_8h.html#5528eeccf214bfe021532622d78c6a96">00140</a> <span class="preprocessor"></span><span class="preprocessor">#define UNS16  unsigned short</span>
<a name="l00141"></a><a class="code" href="hcs12_2applicfg_8h.html#889a782714194ae2f780002d25d6e0be">00141</a> <span class="preprocessor"></span><span class="preprocessor">#define UNS32  unsigned long</span>
<a name="l00142"></a><a class="code" href="hcs12_2applicfg_8h.html#7eec2f0575ec58202f7e7e8072722508">00142</a> <span class="preprocessor"></span><span class="preprocessor">#define UNS24</span>
<a name="l00143"></a><a class="code" href="hcs12_2applicfg_8h.html#e83de5a9f9a3ea891eb0ce1044277ee9">00143</a> <span class="preprocessor"></span><span class="preprocessor">#define UNS40</span>
<a name="l00144"></a><a class="code" href="hcs12_2applicfg_8h.html#c67204750d2dc3f2681555bf81368765">00144</a> <span class="preprocessor"></span><span class="preprocessor">#define UNS48</span>
<a name="l00145"></a><a class="code" href="hcs12_2applicfg_8h.html#0cba1f6285c9f23a663d56d0c99559da">00145</a> <span class="preprocessor"></span><span class="preprocessor">#define UNS56</span>
<a name="l00146"></a><a class="code" href="hcs12_2applicfg_8h.html#55de1c7512d46f732dcaea5db4aa7fa9">00146</a> <span class="preprocessor"></span><span class="preprocessor">#define UNS64 </span>
<a name="l00147"></a>00147 <span class="preprocessor"></span>
<a name="l00148"></a>00148 <span class="comment">// Whatever your microcontroller, the timer wont work if </span>
<a name="l00149"></a>00149 <span class="comment">// TIMEVAL is not at least on 32 bits</span>
<a name="l00150"></a><a class="code" href="hcs12_2applicfg_8h.html#6ae11f09e1ebf40f3562857272fab8bf">00150</a> <span class="preprocessor">#define TIMEVAL UNS32 </span>
<a name="l00151"></a>00151 <span class="preprocessor"></span>
<a name="l00152"></a>00152 <span class="comment">// The timer of the hcs12 counts from 0000 to 0xFFFF</span>
<a name="l00153"></a><a class="code" href="hcs12_2applicfg_8h.html#35b2fd1a5f6b88bf3842ba3663e6f85e">00153</a> <span class="preprocessor">#define TIMEVAL_MAX 0xFFFF</span>
<a name="l00154"></a>00154 <span class="preprocessor"></span>
<a name="l00155"></a>00155 <span class="comment">// The timer is incrementing every 4 us.</span>
<a name="l00156"></a><a class="code" href="hcs12_2applicfg_8h.html#ee85d2eeabff670269ebc2e00251ac6d">00156</a> <span class="preprocessor">#define MS_TO_TIMEVAL(ms) (ms * 250)</span>
<a name="l00157"></a><a class="code" href="hcs12_2applicfg_8h.html#56849fe35cb6cbe17f7768a2d3af62f8">00157</a> <span class="preprocessor"></span><span class="preprocessor">#define US_TO_TIMEVAL(us) (us&gt;&gt;2)</span>
<a name="l00158"></a>00158 <span class="preprocessor"></span>
<a name="l00159"></a>00159 
<a name="l00160"></a>00160 <span class="comment">// Reals</span>
<a name="l00161"></a><a class="code" href="hcs12_2applicfg_8h.html#a317e78f368f51a31a7ea72ea7afbc89">00161</a> <span class="preprocessor">#define REAL32  float</span>
<a name="l00162"></a><a class="code" href="hcs12_2applicfg_8h.html#3c2031a645686699b0f1e3b0ceaac6ee">00162</a> <span class="preprocessor"></span><span class="preprocessor">#define REAL64 double</span>
<a name="l00163"></a>00163 <span class="preprocessor"></span>
<a name="l00164"></a>00164 <span class="preprocessor">#include "<a class="code" href="can_8h.html">can.h</a>"</span>
<a name="l00165"></a>00165 
<a name="l00166"></a>00166 
<a name="l00168"></a>00168 <span class="comment">// ---------------------</span>
<a name="l00169"></a>00169 <span class="preprocessor">#ifdef DEBUG_ERR_CONSOLE_ON</span>
<a name="l00170"></a>00170 <span class="preprocessor"></span><span class="preprocessor">#    define MSG_ERR(num, str, val)            \</span>
<a name="l00171"></a>00171 <span class="preprocessor">          initSCI_0();                        \</span>
<a name="l00172"></a>00172 <span class="preprocessor">          printSCI_nbr(SCI0, num, ' ');       \</span>
<a name="l00173"></a>00173 <span class="preprocessor">          </span><span class="comment">/* large printing on console  */</span>    \
<a name="l00174"></a>00174           printSCI_str(SCI0, str);            \
<a name="l00175"></a>00175           printSCI_nbr(SCI0, val, '\n');      
<a name="l00176"></a>00176 <span class="preprocessor">#else</span>
<a name="l00177"></a><a class="code" href="hcs12_2applicfg_8h.html#99178e2619db849578b20df5aa241844">00177</a> <span class="preprocessor"></span><span class="preprocessor">#    define MSG_ERR(num, str, val)</span>
<a name="l00178"></a>00178 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00179"></a>00179 <span class="preprocessor"></span>
<a name="l00181"></a>00181 <span class="comment">// ---------------------</span>
<a name="l00182"></a>00182 <span class="preprocessor">#ifdef DEBUG_WAR_CONSOLE_ON</span>
<a name="l00183"></a>00183 <span class="preprocessor"></span><span class="preprocessor">#    define MSG_WAR(num, str, val)          \</span>
<a name="l00184"></a>00184 <span class="preprocessor">        initSCI_0();                        \</span>
<a name="l00185"></a>00185 <span class="preprocessor">        printSCI_nbr(SCI0, num, ' ');       \</span>
<a name="l00186"></a>00186 <span class="preprocessor">        </span><span class="comment">/* large printing on console  */</span>    \
<a name="l00187"></a>00187         printSCI_str(SCI0, str);            \
<a name="l00188"></a>00188         printSCI_nbr(SCI0, val, '\n');      
<a name="l00189"></a>00189 <span class="preprocessor">#else</span>
<a name="l00190"></a><a class="code" href="hcs12_2applicfg_8h.html#5f4e5133c4c3113931684d3aba518bba">00190</a> <span class="preprocessor"></span><span class="preprocessor">#    define MSG_WAR(num, str, val)</span>
<a name="l00191"></a>00191 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00192"></a>00192 <span class="preprocessor"></span>
<a name="l00193"></a>00193 
<a name="l00194"></a>00194 <span class="preprocessor">#endif</span>
<a name="l00195"></a>00195 <span class="preprocessor"></span>
<a name="l00196"></a>00196 
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Jun 8 08:51:39 2007 for CanFestival by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
</body>
</html>