📄 group__can__interface.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>RCA CAN Library: Universelles CAN Interface</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Erzeugt von Doxygen 1.5.5 --><div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Hauptseite</span></a></li> <li><a href="modules.html"><span>Module</span></a></li> <li><a href="annotated.html"><span>Datenstrukturen</span></a></li> <li><a href="files.html"><span>Dateien</span></a></li> </ul> </div></div><div class="contents"><h1>Universelles CAN Interface</h1>allgemeines CAN Interface f眉r AT90CAN32/64/128, MCP2515 und SJA1000 <a href="#_details">Mehr ...</a><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Datenstrukturen</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structcan__t.html">can_t</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Datenstruktur zum Aufnehmen von CAN Nachrichten. <a href="structcan__t.html#_details">Mehr ...</a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structcan__filter__t.html">can_filter_t</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Datenstruktur zur Aufnahme von CAN-Filtern. <a href="structcan__filter__t.html#_details">Mehr ...</a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structcan__error__register__t.html">can_error_register_t</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Inhalt der Fehler-Register. <a href="structcan__error__register__t.html#_details">Mehr ...</a><br></td></tr><tr><td colspan="2"><br><h2>Makrodefinitionen</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0c107bf106e5097ee208985008c9c112"></a><!-- doxytag: member="can_interface::CAN_ALL_FILTER" ref="g0c107bf106e5097ee208985008c9c112" args="" -->#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__interface.html#g0c107bf106e5097ee208985008c9c112">CAN_ALL_FILTER</a> 0xff</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Symbol um auf alle Filter zuzugreifen. <br></td></tr><tr><td colspan="2"><br><h2>Aufz盲hlungen</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__interface.html#g1085b545b19ee92abad774ad27eec8d7">can_bitrate_t</a> { <br> <b>BITRATE_10_KBPS</b> = 0, <b>BITRATE_20_KBPS</b> = 1, <b>BITRATE_50_KBPS</b> = 2, <b>BITRATE_100_KBPS</b> = 3, <br> <b>BITRATE_125_KBPS</b> = 4, <b>BITRATE_250_KBPS</b> = 5, <b>BITRATE_500_KBPS</b> = 6, <b>BITRATE_1_MBPS</b> = 7<br> }</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Bitraten fuer den CAN-Bus. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__interface.html#gd6f5bfd4c152b830a94c2066e9c81710">can_mode_t</a> { <a class="el" href="group__can__interface.html#ggd6f5bfd4c152b830a94c2066e9c81710581130e49bf3be40cabb563b0fee8fc4">LISTEN_ONLY_MODE</a>, <a class="el" href="group__can__interface.html#ggd6f5bfd4c152b830a94c2066e9c81710187b2d7634d602c4f41d4a92b02c4b8f">LOOPBACK_MODE</a>, <a class="el" href="group__can__interface.html#ggd6f5bfd4c152b830a94c2066e9c8171083feb61d42f8db9f494019fcea2c0148">NORMAL_MODE</a> }</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Modus des CAN Interfaces. <a href="group__can__interface.html#gd6f5bfd4c152b830a94c2066e9c81710">Mehr ...</a><br></td></tr><tr><td colspan="2"><br><h2>Funktionen</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__interface.html#gbd1f48e60b6607452b92d08cca69e882">can_init</a> (<a class="el" href="group__can__interface.html#g1085b545b19ee92abad774ad27eec8d7">can_bitrate_t</a> bitrate)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Initialisierung des CAN Interfaces. <a href="#gbd1f48e60b6607452b92d08cca69e882"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__interface.html#gf6ee58a439c848efb779306f0d84f87d">can_set_filter</a> (uint8_t number, const <a class="el" href="structcan__filter__t.html">can_filter_t</a> *filter)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Setzen eines Filters. <a href="#gf6ee58a439c848efb779306f0d84f87d"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__interface.html#g481f4fb1ea636415efc618e4e7f40989">can_disable_filter</a> (uint8_t number)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Filter deaktivieren. <a href="#g481f4fb1ea636415efc618e4e7f40989"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__interface.html#g1a525dac710bc2650bb2d9939f287923">can_static_filter</a> (const prog_uint8_t *filter_array)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Setzt die Werte f眉r alle Filter. <a href="#g1a525dac710bc2650bb2d9939f287923"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__interface.html#g16d0640bef61ef76d8bd4c6274c6cdaa">can_get_filter</a> (uint8_t number, <a class="el" href="structcan__filter__t.html">can_filter_t</a> *filter)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Filterdaten auslesen. <a href="#g16d0640bef61ef76d8bd4c6274c6cdaa"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__interface.html#gea4af1845c4128b901e6b5190f154f02">can_check_message</a> (void)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Ueberpruefen ob neue CAN Nachrichten vorhanden sind. <a href="#gea4af1845c4128b901e6b5190f154f02"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__interface.html#g645382c1488d16b75b6721a476ac0836">can_check_free_buffer</a> (void)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Ueberprueft ob ein Puffer zum Versenden einer Nachricht frei ist. <a href="#g645382c1488d16b75b6721a476ac0836"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__interface.html#ge3f7b241d087aaa78feb98452ae320d5">can_send_message</a> (const <a class="el" href="structcan__t.html">can_t</a> *msg)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Verschickt eine Nachricht 眉ber den CAN Bus. <a href="#ge3f7b241d087aaa78feb98452ae320d5"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__interface.html#g93c3e6ad5e58dc208cd1ccce45f4fe97">can_get_message</a> (<a class="el" href="structcan__t.html">can_t</a> *msg)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Liest eine Nachricht aus den Empfangspuffern des CAN Controllers. <a href="#g93c3e6ad5e58dc208cd1ccce45f4fe97"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb163a825c6dc771bfd910dd1566c6709"></a><!-- doxytag: member="can_interface::can_read_error_register" ref="gb163a825c6dc771bfd910dd1566c6709" args="(void)" --><a class="el" href="structcan__error__register__t.html">can_error_register_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__interface.html#gb163a825c6dc771bfd910dd1566c6709">can_read_error_register</a> (void)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Liest den Inhalt der Fehler-Register. <br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__interface.html#g789249cd7bf03abf1112e66dc31c6a6b">can_check_bus_off</a> (void)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">脺berpr眉ft ob der CAN Controller im Bus-Off-Status. <a href="#g789249cd7bf03abf1112e66dc31c6a6b"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__interface.html#g9dd5adf15a4a0421c45840443e720ee3">can_reset_bus_off</a> (void)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Setzt einen Bus-Off Status zur眉ck und schaltet den CAN Controller wieder aktiv. <a href="#g9dd5adf15a4a0421c45840443e720ee3"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__can__interface.html#g08711a36cb70dc71c761ed01f7cbf8c8">can_set_mode</a> (<a class="el" href="group__can__interface.html#gd6f5bfd4c152b830a94c2066e9c81710">can_mode_t</a> mode)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Setzt den Operations-Modus. <a href="#g08711a36cb70dc71c761ed01f7cbf8c8"></a><br></td></tr></table><hr><a name="_details"></a><h2>Ausf眉hrliche Beschreibung</h2>allgemeines CAN Interface f眉r AT90CAN32/64/128, MCP2515 und SJA1000 <p><dl class="author" compact><dt><b>Autor:</b></dt><dd>Fabian Greif <<a href="mailto:fabian.greif@rwth-aachen.de">fabian.greif@rwth-aachen.de</a>> <p>Roboterclub Aachen e.V. (<a href="http://www.roboterclub.rwth-aachen.de">http://www.roboterclub.rwth-aachen.de</a>)</dd></dl><dl class="version" compact><dt><b>Version:</b></dt><dd></dd></dl><dl class="rcs" compact><dt><b>Id</b></dt><dd><a class="el" href="can_8h.html" title="Header-Datei f眉r das allgemeine CAN Interface.">can.h</a> 6927 2008-12-03 22:42:59Z fabian </dd></dl><hr><h2>Dokumentation der Aufz盲hlungstypen</h2><a class="anchor" name="gd6f5bfd4c152b830a94c2066e9c81710"></a><!-- doxytag: member="can.h::can_mode_t" ref="gd6f5bfd4c152b830a94c2066e9c81710" args="" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="group__can__interface.html#gd6f5bfd4c152b830a94c2066e9c81710">can_mode_t</a> </td> </tr> </table></div><div class="memdoc"><p>Modus des CAN Interfaces. <p><dl compact><dt><b>Aufz盲hlungswerte: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"><tr><td valign="top"><em><a class="anchor" name="ggd6f5bfd4c152b830a94c2066e9c81710581130e49bf3be40cabb563b0fee8fc4"></a><!-- doxytag: member="LISTEN_ONLY_MODE" ref="ggd6f5bfd4c152b830a94c2066e9c81710581130e49bf3be40cabb563b0fee8fc4" args="" -->LISTEN_ONLY_MODE</em> </td><td>der CAN Contoller empf盲ngt nur und verh盲lt sich v枚llig passiv </td></tr><tr><td valign="top"><em><a class="anchor" name="ggd6f5bfd4c152b830a94c2066e9c81710187b2d7634d602c4f41d4a92b02c4b8f"></a><!-- doxytag: member="LOOPBACK_MODE" ref="ggd6f5bfd4c152b830a94c2066e9c81710187b2d7634d602c4f41d4a92b02c4b8f" args="" -->LOOPBACK_MODE</em> </td><td>alle Nachrichten direkt auf die Empfangsregister umleiten ohne sie zu senden </td></tr><tr><td valign="top"><em><a class="anchor" name="ggd6f5bfd4c152b830a94c2066e9c8171083feb61d42f8db9f494019fcea2c0148"></a><!-- doxytag: member="NORMAL_MODE" ref="ggd6f5bfd4c152b830a94c2066e9c8171083feb61d42f8db9f494019fcea2c0148" args="" -->NORMAL_MODE</em> </td><td>normaler Modus, CAN Controller ist aktiv </td></tr></table></dl><p>Definiert in Zeile <a class="el" href="can_8h-source.html#l00257">257</a> der Datei <a class="el" href="can_8h-source.html">can.h</a>.</p></div></div><p><hr><h2>Dokumentation der Funktionen</h2><a class="anchor" name="g789249cd7bf03abf1112e66dc31c6a6b"></a><!-- doxytag: member="can.h::can_check_bus_off" ref="g789249cd7bf03abf1112e66dc31c6a6b" args="(void)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">bool can_check_bus_off </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p>脺berpr眉ft ob der CAN Controller im Bus-Off-Status. <p><dl class="return" compact><dt><b>R眉ckgabe:</b></dt><dd>true wenn der Bus-Off-Status aktiv ist, false ansonsten</dd></dl><dl class="warning" compact><dt><b>Warnung:</b></dt><dd>aktuell nur auf dem SJA1000 </dd></dl></div></div><p><a class="anchor" name="g645382c1488d16b75b6721a476ac0836"></a><!-- doxytag: member="can.h::can_check_free_buffer" ref="g645382c1488d16b75b6721a476ac0836" args="(void)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">bool can_check_free_buffer </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Ueberprueft ob ein Puffer zum Versenden einer Nachricht frei ist. <p><dl class="return" compact><dt><b>R眉ckgabe:</b></dt><dd>true falls ein Sende-Puffer frei ist, false ansonsten. </dd></dl></div></div><p><a class="anchor" name="gea4af1845c4128b901e6b5190f154f02"></a><!-- doxytag: member="can.h::can_check_message" ref="gea4af1845c4128b901e6b5190f154f02" args="(void)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">bool can_check_message </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Ueberpruefen ob neue CAN Nachrichten vorhanden sind. <p><dl class="return" compact><dt><b>R眉ckgabe:</b></dt><dd>true falls neue Nachrichten verfuegbar sind, false ansonsten. </dd></dl></div></div><p><a class="anchor" name="g481f4fb1ea636415efc618e4e7f40989"></a><!-- doxytag: member="can.h::can_disable_filter" ref="g481f4fb1ea636415efc618e4e7f40989" args="(uint8_t number)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">bool can_disable_filter </td> <td>(</td> <td class="paramtype">uint8_t </td> <td class="paramname"> <em>number</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Filter deaktivieren. <p><dl compact><dt><b>Parameter:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>number</em> </td><td>Nummer des Filters der deaktiviert werden soll, 0xff deaktiviert alle Filter. </td></tr> </table></dl><dl class="return" compact><dt><b>R眉ckgabe:</b></dt><dd>false falls ein Fehler auftrat, true ansonsten</dd></dl><dl class="warning" compact><dt><b>Warnung:</b></dt><dd>Wird nur vom AT90CAN32/64/128 unterstuetzt. </dd></dl></div></div><p><a class="anchor" name="g16d0640bef61ef76d8bd4c6274c6cdaa"></a><!-- doxytag: member="can.h::can_get_filter" ref="g16d0640bef61ef76d8bd4c6274c6cdaa" args="(uint8_t number, can_filter_t *filter)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">uint8_t can_get_filter </td> <td>(</td> <td class="paramtype">uint8_t </td> <td class="paramname"> <em>number</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structcan__filter__t.html">can_filter_t</a> * </td> <td class="paramname"> <em>filter</em></td><td> </td> </tr> <tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -