2010-08-10 03:11:02 +00:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
< html > < head > < meta http-equiv = "Content-Type" content = "text/html;charset=UTF-8" >
< title > ChibiOS/RT: CAN Driver< / title >
< link href = "custom.css" rel = "stylesheet" type = "text/css" >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" >
< / head > < body >
< table style = "text-align: center; width: 100%;" border = "0"
cellpadding="2" cellspacing="2">
< tbody >
< tr >
< td style = "width: 80px;" > < img alt = "ChibiOS/RT Logo" src = "logo_small.png" > < / td >
< td > < big > < big > ChibiOS/RT< / big > < / big > < br > < br > Architecture - Reference Manual - Guides< / td >
< td style = "width: 80px;" > < / td >
< / tr >
< / tbody >
< / table >
< hr size = "1" >
2010-11-22 05:53:37 +00:00
<!-- Generated by Doxygen 1.7.1 -->
2010-08-10 03:11:02 +00:00
< div class = "navigation" id = "top" >
< div class = "tabs" >
2010-11-22 05:53:37 +00:00
< ul class = "tablist" >
2010-08-10 03:11:02 +00:00
< li > < a href = "main.html" > < span > Main Page< / span > < / a > < / li >
< li > < a href = "modules.html" > < span > Modules< / span > < / a > < / li >
< li > < a href = "annotated.html" > < span > Data Structures< / span > < / a > < / li >
< li > < a href = "files.html" > < span > Files< / span > < / a > < / li >
< / ul >
< / div >
< / div >
2010-11-22 05:53:37 +00:00
< div class = "header" >
< div class = "summary" >
< a href = "#groups" > Modules< / a > |
< a href = "#define-members" > Defines< / a > |
< a href = "#enum-members" > Enumerations< / a > |
< a href = "#func-members" > Functions< / a > < / div >
< div class = "headertitle" >
2010-08-10 03:11:02 +00:00
< h1 > CAN Driver< br / >
< small >
[< a class = "el" href = "group___i_o.html" > HAL< / a > ]< / small >
2010-11-22 05:53:37 +00:00
< / h1 > < / div >
< / div >
< div class = "contents" >
2010-08-10 03:11:02 +00:00
< p > Generic CAN Driver.
< a href = "#_details" > More...< / a > < / p >
< p > < div class = "dynheader" >
Collaboration diagram for CAN Driver:< / div >
2010-11-22 05:53:37 +00:00
< div class = "dyncontent" >
< center > < table > < tr > < td > < img src = "group___c_a_n.png" border = "0" alt = "" usemap = "#group______c__a__n" / >
< map name = "group______c__a__n" id = "group______c__a__n" >
< area shape = "rect" id = "node3" href = "group___c_a_n___l_l_d.html" title = "CAN Driver low level driver template." alt = "" coords = "221,5,352,32" / >
< area shape = "rect" id = "node2" href = "group___i_o.html" title = "Hardware Abstraction Layer." alt = "" coords = "5,5,48,32" / >
< / map >
< / td > < / tr > < / table > < / center >
2010-08-10 03:11:02 +00:00
< / div >
< / p >
< hr / > < a name = "_details" > < / a > < h2 > Description< / h2 >
< p > Generic CAN Driver. < / p >
< p > This module implements a generic ADC driver. The driver implements a state machine internally: < / p >
< div align = "center" >
< img src = "inline_dotgraph_17.dot.png" alt = "inline_dotgraph_17.dot" border = "0" usemap = "#inline_dotgraph_17.dot.map" >
< map name = "inline_dotgraph_17.dot.map" id = "inline_dotgraph_17.dot.map" > < / map >
< / div >
2010-11-22 05:53:37 +00:00
< table class = "memberdecls" >
< tr > < td colspan = "2" > < h2 > < a name = "groups" > < / a >
Modules< / h2 > < / td > < / tr >
2010-08-10 03:11:02 +00:00
< tr > < td class = "memItemLeft" align = "right" valign = "top" > < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n___l_l_d.html" > CAN Low Level Driver< / a > < / td > < / tr >
< p > < tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > < p > < a class = "el" href = "group___c_a_n.html" > CAN Driver< / a > low level driver template. < / p >
< br / > < / td > < / tr >
< / p >
2010-11-22 05:53:37 +00:00
< tr > < td colspan = "2" > < h2 > < a name = "define-members" > < / a >
Defines< / h2 > < / td > < / tr >
2010-08-10 03:11:02 +00:00
< tr > < td class = "memItemLeft" align = "right" valign = "top" > #define < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n.html#ga9e84b4cbbb9eb88519aa922ae9c33f09" > CAN_LIMIT_WARNING< / a > 1< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Errors rate warning. < a href = "#ga9e84b4cbbb9eb88519aa922ae9c33f09" > < / a > < br / > < / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > #define < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n.html#ga50706597b6872fbf90222fede47d1f54" > CAN_LIMIT_ERROR< / a > 2< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Errors rate error. < a href = "#ga50706597b6872fbf90222fede47d1f54" > < / a > < br / > < / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > #define < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n.html#gaaa317e7894d81461722dfeb4aa2c14dd" > CAN_BUS_OFF_ERROR< / a > 4< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Bus off condition reached. < a href = "#gaaa317e7894d81461722dfeb4aa2c14dd" > < / a > < br / > < / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > #define < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n.html#ga76f084f2cf0c2088ed0d8948e6075709" > CAN_FRAMING_ERROR< / a > 8< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Framing error of some kind on the CAN bus. < a href = "#ga76f084f2cf0c2088ed0d8948e6075709" > < / a > < br / > < / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > #define < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n.html#ga8da95bff65bea0790d564841895c42d0" > CAN_OVERFLOW_ERROR< / a > 16< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Overflow in receive queue. < a href = "#ga8da95bff65bea0790d564841895c42d0" > < / a > < br / > < / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > #define < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n.html#ga5294d9d12e4186c781df3b2f1d8bd80b" > CAN_USE_SLEEP_MODE< / a > TRUE< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Sleep mode related APIs inclusion switch. < a href = "#ga5294d9d12e4186c781df3b2f1d8bd80b" > < / a > < br / > < / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > #define < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n.html#ga41491eed34c87bf9b8f225a007266e58" > canAddFlagsI< / a > (canp, mask) ((canp)-> cd_status |= (mask))< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Adds some flags to the CAN status mask. < a href = "#ga41491eed34c87bf9b8f225a007266e58" > < / a > < br / > < / td > < / tr >
2010-11-22 05:53:37 +00:00
< tr > < td colspan = "2" > < h2 > < a name = "enum-members" > < / a >
Enumerations< / h2 > < / td > < / tr >
2010-08-10 03:11:02 +00:00
< tr > < td class = "memItemLeft" align = "right" valign = "top" > enum < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n.html#gaca62464ffdcedae03d49adf3f6ce870e" > canstate_t< / a > { < br / >
< a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870ea91fe9adee6b7f27be97e8b59439774cc" > CAN_UNINIT< / a > = 0,
< a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870ea6ed84a3a97073b3e04918a90d90dd11e" > CAN_STOP< / a > = 1,
< a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870eaf10eb7d86ea8728c90d931f34a432394" > CAN_STARTING< / a > = 2,
< a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870eaf6cc9dbdefe635c9db9dca135cc94610" > CAN_READY< / a > = 3,
< br / >
< a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870ea7b6ee207a3d1bfec35374f0d3964e6aa" > CAN_SLEEP< / a > = 4
< br / >
}< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > < p > Driver state machine possible states. < / p >
< a href = "group___c_a_n.html#gaca62464ffdcedae03d49adf3f6ce870e" > More...< / a > < br / > < / td > < / tr >
2010-11-22 05:53:37 +00:00
< tr > < td colspan = "2" > < h2 > < a name = "func-members" > < / a >
Functions< / h2 > < / td > < / tr >
2010-08-10 03:11:02 +00:00
< tr > < td class = "memItemLeft" align = "right" valign = "top" > void < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n.html#ga2d3efc34f7704ab23c293aac2be47764" > canInit< / a > (void)< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > CAN Driver initialization. < a href = "#ga2d3efc34f7704ab23c293aac2be47764" > < / a > < br / > < / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > void < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n.html#gadf8c892ca4bd2544d03be8a690885aef" > canObjectInit< / a > (< a class = "el" href = "struct_c_a_n_driver.html" > CANDriver< / a > *canp)< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Initializes the standard part of a < code > < a class = "el" href = "struct_c_a_n_driver.html" title = "Structure representing an CAN driver." > CANDriver< / a > < / code > structure. < a href = "#gadf8c892ca4bd2544d03be8a690885aef" > < / a > < br / > < / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > void < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n.html#ga05d2448864b2cae4674ed7e6f3c576b8" > canStart< / a > (< a class = "el" href = "struct_c_a_n_driver.html" > CANDriver< / a > *canp, const < a class = "el" href = "struct_c_a_n_config.html" > CANConfig< / a > *config)< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Configures and activates the CAN peripheral. < a href = "#ga05d2448864b2cae4674ed7e6f3c576b8" > < / a > < br / > < / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > void < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n.html#ga4e89a7d246119e077d27431a02586133" > canStop< / a > (< a class = "el" href = "struct_c_a_n_driver.html" > CANDriver< / a > *canp)< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Deactivates the CAN peripheral. < a href = "#ga4e89a7d246119e077d27431a02586133" > < / a > < br / > < / td > < / tr >
2010-11-22 05:53:37 +00:00
< tr > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "group__types.html#ga35bcb0c321cd7bc45bf1a11fa17ebdd3" > msg_t< / a > < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n.html#gad9c686d19b4319ef586af3631b779c6c" > canTransmit< / a > (< a class = "el" href = "struct_c_a_n_driver.html" > CANDriver< / a > *canp, const < a class = "el" href = "struct_c_a_n_tx_frame.html" > CANTxFrame< / a > *ctfp, < a class = "el" href = "group__types.html#gae3e32a98d431a02106616da3071832dd" > systime_t< / a > timeout)< / td > < / tr >
2010-08-10 03:11:02 +00:00
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Can frame transmission. < a href = "#gad9c686d19b4319ef586af3631b779c6c" > < / a > < br / > < / td > < / tr >
2010-11-22 05:53:37 +00:00
< tr > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "group__types.html#ga35bcb0c321cd7bc45bf1a11fa17ebdd3" > msg_t< / a > < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n.html#ga557d845167f6ab4f224b036860411db5" > canReceive< / a > (< a class = "el" href = "struct_c_a_n_driver.html" > CANDriver< / a > *canp, < a class = "el" href = "struct_c_a_n_rx_frame.html" > CANRxFrame< / a > *crfp, < a class = "el" href = "group__types.html#gae3e32a98d431a02106616da3071832dd" > systime_t< / a > timeout)< / td > < / tr >
2010-08-10 03:11:02 +00:00
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Can frame receive. < a href = "#ga557d845167f6ab4f224b036860411db5" > < / a > < br / > < / td > < / tr >
2010-11-22 05:53:37 +00:00
< tr > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "group___c_a_n___l_l_d.html#ga4a6894bc11434dfa96263dcd72735330" > canstatus_t< / a > < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n.html#ga377a78b04ad6733e24b31615b76cdada" > canGetAndClearFlags< / a > (< a class = "el" href = "struct_c_a_n_driver.html" > CANDriver< / a > *canp)< / td > < / tr >
2010-08-10 03:11:02 +00:00
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Returns the current status mask and clears it. < a href = "#ga377a78b04ad6733e24b31615b76cdada" > < / a > < br / > < / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > void < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n.html#ga97caf4f277c09588c225ea2328a74cba" > canSleep< / a > (< a class = "el" href = "struct_c_a_n_driver.html" > CANDriver< / a > *canp)< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Enters the sleep mode. < a href = "#ga97caf4f277c09588c225ea2328a74cba" > < / a > < br / > < / td > < / tr >
< tr > < td class = "memItemLeft" align = "right" valign = "top" > void < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group___c_a_n.html#ga09737d4ae5be724bf791a309e8a28dff" > canWakeup< / a > (< a class = "el" href = "struct_c_a_n_driver.html" > CANDriver< / a > *canp)< / td > < / tr >
< tr > < td class = "mdescLeft" > < / td > < td class = "mdescRight" > Enforces leaving the sleep mode. < a href = "#ga09737d4ae5be724bf791a309e8a28dff" > < / a > < br / > < / td > < / tr >
< / table >
< hr / > < h2 > Define Documentation< / h2 >
< a class = "anchor" id = "ga9e84b4cbbb9eb88519aa922ae9c33f09" > < / a > <!-- doxytag: member="can.h::CAN_LIMIT_WARNING" ref="ga9e84b4cbbb9eb88519aa922ae9c33f09" args="" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define CAN_LIMIT_WARNING 1< / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Errors rate warning. < / p >
< p > Definition at line < a class = "el" href = "can_8h_source.html#l00047" > 47< / a > of file < a class = "el" href = "can_8h_source.html" > can.h< / a > .< / p >
< / div >
< / div >
< a class = "anchor" id = "ga50706597b6872fbf90222fede47d1f54" > < / a > <!-- doxytag: member="can.h::CAN_LIMIT_ERROR" ref="ga50706597b6872fbf90222fede47d1f54" args="" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define CAN_LIMIT_ERROR 2< / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Errors rate error. < / p >
< p > Definition at line < a class = "el" href = "can_8h_source.html#l00051" > 51< / a > of file < a class = "el" href = "can_8h_source.html" > can.h< / a > .< / p >
< / div >
< / div >
< a class = "anchor" id = "gaaa317e7894d81461722dfeb4aa2c14dd" > < / a > <!-- doxytag: member="can.h::CAN_BUS_OFF_ERROR" ref="gaaa317e7894d81461722dfeb4aa2c14dd" args="" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define CAN_BUS_OFF_ERROR 4< / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Bus off condition reached. < / p >
< p > Definition at line < a class = "el" href = "can_8h_source.html#l00055" > 55< / a > of file < a class = "el" href = "can_8h_source.html" > can.h< / a > .< / p >
< / div >
< / div >
< a class = "anchor" id = "ga76f084f2cf0c2088ed0d8948e6075709" > < / a > <!-- doxytag: member="can.h::CAN_FRAMING_ERROR" ref="ga76f084f2cf0c2088ed0d8948e6075709" args="" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define CAN_FRAMING_ERROR 8< / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Framing error of some kind on the CAN bus. < / p >
< p > Definition at line < a class = "el" href = "can_8h_source.html#l00059" > 59< / a > of file < a class = "el" href = "can_8h_source.html" > can.h< / a > .< / p >
< / div >
< / div >
< a class = "anchor" id = "ga8da95bff65bea0790d564841895c42d0" > < / a > <!-- doxytag: member="can.h::CAN_OVERFLOW_ERROR" ref="ga8da95bff65bea0790d564841895c42d0" args="" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define CAN_OVERFLOW_ERROR 16< / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Overflow in receive queue. < / p >
< p > Definition at line < a class = "el" href = "can_8h_source.html#l00063" > 63< / a > of file < a class = "el" href = "can_8h_source.html" > can.h< / a > .< / p >
< / div >
< / div >
< a class = "anchor" id = "ga5294d9d12e4186c781df3b2f1d8bd80b" > < / a > <!-- doxytag: member="can.h::CAN_USE_SLEEP_MODE" ref="ga5294d9d12e4186c781df3b2f1d8bd80b" args="" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define CAN_USE_SLEEP_MODE TRUE< / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Sleep mode related APIs inclusion switch. < / p >
2010-11-22 05:53:37 +00:00
< p > Definition at line < a class = "el" href = "can_8h_source.html#l00073" > 73< / a > of file < a class = "el" href = "can_8h_source.html" > can.h< / a > .< / p >
2010-08-10 03:11:02 +00:00
< / div >
< / div >
< a class = "anchor" id = "ga41491eed34c87bf9b8f225a007266e58" > < / a > <!-- doxytag: member="can.h::canAddFlagsI" ref="ga41491eed34c87bf9b8f225a007266e58" args="(canp, mask)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > #define canAddFlagsI< / td >
< td > (< / td >
2010-11-22 05:53:37 +00:00
< td class = "paramtype" > < / td >
< td class = "paramname" > canp, < / td >
2010-08-10 03:11:02 +00:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2010-11-22 05:53:37 +00:00
< td class = "paramtype" > < / td >
< td class = "paramname" > mask< / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > ((canp)-> cd_status |= (mask))< / td >
2010-08-10 03:11:02 +00:00
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Adds some flags to the CAN status mask. < / p >
< dl > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < tt > [in]< / tt > < / td > < td valign = "top" > < em > canp< / em > < / td > < td > pointer to the < code > < a class = "el" href = "struct_c_a_n_driver.html" title = "Structure representing an CAN driver." > CANDriver< / a > < / code > object < / td > < / tr >
< tr > < td valign = "top" > < tt > [in]< / tt > < / td > < td valign = "top" > < em > mask< / em > < / td > < td > flags to be added to the status mask < / td > < / tr >
< / table >
< / dd >
< / dl >
2010-11-22 05:53:37 +00:00
< p > Definition at line < a class = "el" href = "can_8h_source.html#l00111" > 111< / a > of file < a class = "el" href = "can_8h_source.html" > can.h< / a > .< / p >
2010-08-10 03:11:02 +00:00
< / div >
< / div >
< hr / > < h2 > Enumeration Type Documentation< / h2 >
< a class = "anchor" id = "gaca62464ffdcedae03d49adf3f6ce870e" > < / a > <!-- doxytag: member="can.h::canstate_t" ref="gaca62464ffdcedae03d49adf3f6ce870e" args="" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > enum < a class = "el" href = "group___c_a_n.html#gaca62464ffdcedae03d49adf3f6ce870e" > canstate_t< / a > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Driver state machine possible states. < / p >
< dl > < dt > < b > Enumerator: < / b > < / dt > < dd > < table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < em > < a class = "anchor" id = "ggaca62464ffdcedae03d49adf3f6ce870ea91fe9adee6b7f27be97e8b59439774cc" > < / a > <!-- doxytag: member="CAN_UNINIT" ref="ggaca62464ffdcedae03d49adf3f6ce870ea91fe9adee6b7f27be97e8b59439774cc" args="" --> CAN_UNINIT< / em > < / td > < td >
< p > Not initialized. < / p >
< / td > < / tr >
< tr > < td valign = "top" > < em > < a class = "anchor" id = "ggaca62464ffdcedae03d49adf3f6ce870ea6ed84a3a97073b3e04918a90d90dd11e" > < / a > <!-- doxytag: member="CAN_STOP" ref="ggaca62464ffdcedae03d49adf3f6ce870ea6ed84a3a97073b3e04918a90d90dd11e" args="" --> CAN_STOP< / em > < / td > < td >
< p > Stopped. < / p >
< / td > < / tr >
< tr > < td valign = "top" > < em > < a class = "anchor" id = "ggaca62464ffdcedae03d49adf3f6ce870eaf10eb7d86ea8728c90d931f34a432394" > < / a > <!-- doxytag: member="CAN_STARTING" ref="ggaca62464ffdcedae03d49adf3f6ce870eaf10eb7d86ea8728c90d931f34a432394" args="" --> CAN_STARTING< / em > < / td > < td >
< p > Starting. < / p >
< / td > < / tr >
< tr > < td valign = "top" > < em > < a class = "anchor" id = "ggaca62464ffdcedae03d49adf3f6ce870eaf6cc9dbdefe635c9db9dca135cc94610" > < / a > <!-- doxytag: member="CAN_READY" ref="ggaca62464ffdcedae03d49adf3f6ce870eaf6cc9dbdefe635c9db9dca135cc94610" args="" --> CAN_READY< / em > < / td > < td >
< p > Ready. < / p >
< / td > < / tr >
< tr > < td valign = "top" > < em > < a class = "anchor" id = "ggaca62464ffdcedae03d49adf3f6ce870ea7b6ee207a3d1bfec35374f0d3964e6aa" > < / a > <!-- doxytag: member="CAN_SLEEP" ref="ggaca62464ffdcedae03d49adf3f6ce870ea7b6ee207a3d1bfec35374f0d3964e6aa" args="" --> CAN_SLEEP< / em > < / td > < td >
< p > Sleep state. < / p >
< / td > < / tr >
< / table >
< / dd >
< / dl >
2010-11-22 05:53:37 +00:00
< p > Definition at line < a class = "el" href = "can_8h_source.html#l00091" > 91< / a > of file < a class = "el" href = "can_8h_source.html" > can.h< / a > .< / p >
2010-08-10 03:11:02 +00:00
< / div >
< / div >
< hr / > < h2 > Function Documentation< / h2 >
< a class = "anchor" id = "ga2d3efc34f7704ab23c293aac2be47764" > < / a > <!-- doxytag: member="can.h::canInit" ref="ga2d3efc34f7704ab23c293aac2be47764" args="(void)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void canInit < / td >
< td > (< / td >
< td class = "paramtype" > void < / td >
< td class = "paramname" > < / td >
< td > ) < / td >
< td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > CAN Driver initialization. < / p >
< p > Definition at line < a class = "el" href = "can_8c_source.html#l00059" > 59< / a > of file < a class = "el" href = "can_8c_source.html" > can.c< / a > .< / p >
< p > References < a class = "el" href = "group___c_a_n___l_l_d.html#gaa215539c505ce7099f30c0aace00bf25" > can_lld_init()< / a > .< / p >
< p > Referenced by < a class = "el" href = "group___h_a_l.html#gafd89c1650df524d95aef39b8bc38170d" > halInit()< / a > .< / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
2010-11-22 05:53:37 +00:00
< div class = "dyncontent" >
< div class = "center" > < img src = "group___c_a_n_ga2d3efc34f7704ab23c293aac2be47764_cgraph.png" border = "0" usemap = "#group___c_a_n_ga2d3efc34f7704ab23c293aac2be47764_cgraph" alt = "" / > < / div >
< map name = "group___c_a_n_ga2d3efc34f7704ab23c293aac2be47764_cgraph" id = "group___c_a_n_ga2d3efc34f7704ab23c293aac2be47764_cgraph" >
< area shape = "rect" id = "node3" href = "group___c_a_n___l_l_d.html#gaa215539c505ce7099f30c0aace00bf25" title = "Low level CAN driver initialization." alt = "" coords = "107,5,181,32" / >
< / map >
2010-08-10 03:11:02 +00:00
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "gadf8c892ca4bd2544d03be8a690885aef" > < / a > <!-- doxytag: member="can.h::canObjectInit" ref="gadf8c892ca4bd2544d03be8a690885aef" args="(CANDriver *canp)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void canObjectInit < / td >
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "struct_c_a_n_driver.html" > CANDriver< / a > * < / td >
< td class = "paramname" > < em > canp< / em > < / td >
< td > ) < / td >
< td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Initializes the standard part of a < code > < a class = "el" href = "struct_c_a_n_driver.html" title = "Structure representing an CAN driver." > CANDriver< / a > < / code > structure. < / p >
< dl > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < tt > [in]< / tt > < / td > < td valign = "top" > < em > canp< / em > < / td > < td > pointer to the < code > < a class = "el" href = "struct_c_a_n_driver.html" title = "Structure representing an CAN driver." > CANDriver< / a > < / code > object < / td > < / tr >
< / table >
< / dd >
< / dl >
< p > Definition at line < a class = "el" href = "can_8c_source.html#l00069" > 69< / a > of file < a class = "el" href = "can_8c_source.html" > can.c< / a > .< / p >
2010-11-22 05:53:37 +00:00
< p > References < a class = "el" href = "struct_c_a_n_driver.html#a06a64e755c1b87bf9f8156d7d19a4e41" > CANDriver::cd_config< / a > , < a class = "el" href = "struct_c_a_n_driver.html#aa4bc47b7806c2414382071f31b0cef89" > CANDriver::cd_error_event< / a > , < a class = "el" href = "struct_c_a_n_driver.html#af26143d0b9fed9421e79fa4fcb7f3d4b" > CANDriver::cd_rxfull_event< / a > , < a class = "el" href = "struct_c_a_n_driver.html#aae5656b95d7632b579d098e95c3c77d4" > CANDriver::cd_rxsem< / a > , < a class = "el" href = "struct_c_a_n_driver.html#a424d4fd0c061b0237803c03c5815b450" > CANDriver::cd_sleep_event< / a > , < a class = "el" href = "struct_c_a_n_driver.html#a5ed8f92d00941a212ad798e05c001dcb" > CANDriver::cd_state< / a > , < a class = "el" href = "struct_c_a_n_driver.html#a149df5bb5907beae27b8623d432cb20a" > CANDriver::cd_status< / a > , < a class = "el" href = "struct_c_a_n_driver.html#a39538106afd16adf6e1b2640458f5fa2" > CANDriver::cd_txempty_event< / a > , < a class = "el" href = "struct_c_a_n_driver.html#a2d4f41efdd17ff64233fd636873601c7" > CANDriver::cd_txsem< / a > , < a class = "el" href = "struct_c_a_n_driver.html#ab860f0342e594220bd9428bed397614e" > CANDriver::cd_wakeup_event< / a > , < a class = "el" href = "group__events.html#gab8d0fdc09be629dfb438c32a0523db42" > chEvtInit< / a > , and < a class = "el" href = "group__semaphores.html#gafe8fc6155a871074e8017efd908b2c58" > chSemInit()< / a > .< / p >
2010-08-10 03:11:02 +00:00
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
2010-11-22 05:53:37 +00:00
< div class = "dyncontent" >
< div class = "center" > < img src = "group___c_a_n_gadf8c892ca4bd2544d03be8a690885aef_cgraph.png" border = "0" usemap = "#group___c_a_n_gadf8c892ca4bd2544d03be8a690885aef_cgraph" alt = "" / > < / div >
< map name = "group___c_a_n_gadf8c892ca4bd2544d03be8a690885aef_cgraph" id = "group___c_a_n_gadf8c892ca4bd2544d03be8a690885aef_cgraph" >
< area shape = "rect" id = "node3" href = "group__semaphores.html#gafe8fc6155a871074e8017efd908b2c58" title = "Initializes a semaphore with the specified counter value." alt = "" coords = "140,5,207,32" / >
< / map >
2010-08-10 03:11:02 +00:00
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "ga05d2448864b2cae4674ed7e6f3c576b8" > < / a > <!-- doxytag: member="can.h::canStart" ref="ga05d2448864b2cae4674ed7e6f3c576b8" args="(CANDriver *canp, const CANConfig *config)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void canStart < / td >
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "struct_c_a_n_driver.html" > CANDriver< / a > * < / td >
< td class = "paramname" > < em > canp< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const < a class = "el" href = "struct_c_a_n_config.html" > CANConfig< / a > * < / td >
< td class = "paramname" > < em > config< / em > < / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Configures and activates the CAN peripheral. < / p >
< dl > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < tt > [in]< / tt > < / td > < td valign = "top" > < em > canp< / em > < / td > < td > pointer to the < code > < a class = "el" href = "struct_c_a_n_driver.html" title = "Structure representing an CAN driver." > CANDriver< / a > < / code > object < / td > < / tr >
< tr > < td valign = "top" > < tt > [in]< / tt > < / td > < td valign = "top" > < em > config< / em > < / td > < td > pointer to the < code > < a class = "el" href = "struct_c_a_n_config.html" title = "Driver configuration structure." > CANConfig< / a > < / code > object < / td > < / tr >
< / table >
< / dd >
< / dl >
< p > Definition at line < a class = "el" href = "can_8c_source.html#l00091" > 91< / a > of file < a class = "el" href = "can_8c_source.html" > can.c< / a > .< / p >
< p > References < a class = "el" href = "group___c_a_n___l_l_d.html#gafae65e8b034b2c1cda8d46790eb2c3fb" > can_lld_start()< / a > , < a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870eaf6cc9dbdefe635c9db9dca135cc94610" > CAN_READY< / a > , < a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870eaf10eb7d86ea8728c90d931f34a432394" > CAN_STARTING< / a > , < a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870ea6ed84a3a97073b3e04918a90d90dd11e" > CAN_STOP< / a > , < a class = "el" href = "struct_c_a_n_driver.html#a06a64e755c1b87bf9f8156d7d19a4e41" > CANDriver::cd_config< / a > , < a class = "el" href = "struct_c_a_n_driver.html#a5ed8f92d00941a212ad798e05c001dcb" > CANDriver::cd_state< / a > , < a class = "el" href = "group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9" > chDbgAssert< / a > , < a class = "el" href = "group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844" > chDbgCheck< / a > , < a class = "el" href = "group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42" > chSysLock< / a > , < a class = "el" href = "group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e" > chSysUnlock< / a > , and < a class = "el" href = "group__threads.html#ga851dc0c4ac72885bf09feebdef4673ac" > chThdSleepS< / a > .< / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
2010-11-22 05:53:37 +00:00
< div class = "dyncontent" >
< div class = "center" > < img src = "group___c_a_n_ga05d2448864b2cae4674ed7e6f3c576b8_cgraph.png" border = "0" usemap = "#group___c_a_n_ga05d2448864b2cae4674ed7e6f3c576b8_cgraph" alt = "" / > < / div >
< map name = "group___c_a_n_ga05d2448864b2cae4674ed7e6f3c576b8_cgraph" id = "group___c_a_n_ga05d2448864b2cae4674ed7e6f3c576b8_cgraph" >
< area shape = "rect" id = "node3" href = "group___c_a_n___l_l_d.html#gafae65e8b034b2c1cda8d46790eb2c3fb" title = "Configures and activates the CAN peripheral." alt = "" coords = "119,5,201,32" / >
< / map >
2010-08-10 03:11:02 +00:00
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "ga4e89a7d246119e077d27431a02586133" > < / a > <!-- doxytag: member="can.h::canStop" ref="ga4e89a7d246119e077d27431a02586133" args="(CANDriver *canp)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void canStop < / td >
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "struct_c_a_n_driver.html" > CANDriver< / a > * < / td >
< td class = "paramname" > < em > canp< / em > < / td >
< td > ) < / td >
< td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Deactivates the CAN peripheral. < / p >
< dl > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < tt > [in]< / tt > < / td > < td valign = "top" > < em > canp< / em > < / td > < td > pointer to the < code > < a class = "el" href = "struct_c_a_n_driver.html" title = "Structure representing an CAN driver." > CANDriver< / a > < / code > object < / td > < / tr >
< / table >
< / dd >
< / dl >
< p > Definition at line < a class = "el" href = "can_8c_source.html#l00116" > 116< / a > of file < a class = "el" href = "can_8c_source.html" > can.c< / a > .< / p >
< p > References < a class = "el" href = "group___c_a_n___l_l_d.html#gad6fff809711eb161f9c53acf4f3f8470" > can_lld_stop()< / a > , < a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870eaf6cc9dbdefe635c9db9dca135cc94610" > CAN_READY< / a > , < a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870ea6ed84a3a97073b3e04918a90d90dd11e" > CAN_STOP< / a > , < a class = "el" href = "struct_c_a_n_driver.html#aae5656b95d7632b579d098e95c3c77d4" > CANDriver::cd_rxsem< / a > , < a class = "el" href = "struct_c_a_n_driver.html#a5ed8f92d00941a212ad798e05c001dcb" > CANDriver::cd_state< / a > , < a class = "el" href = "struct_c_a_n_driver.html#a149df5bb5907beae27b8623d432cb20a" > CANDriver::cd_status< / a > , < a class = "el" href = "struct_c_a_n_driver.html#a2d4f41efdd17ff64233fd636873601c7" > CANDriver::cd_txsem< / a > , < a class = "el" href = "group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9" > chDbgAssert< / a > , < a class = "el" href = "group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844" > chDbgCheck< / a > , < a class = "el" href = "group__scheduler.html#ga4e38b4bee3d2330f6a0f1cdb7660af20" > chSchRescheduleS()< / a > , < a class = "el" href = "group__semaphores.html#gae7972b6b22b80ac09bac5a186277ab81" > chSemResetI()< / a > , < a class = "el" href = "group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42" > chSysLock< / a > , and < a class = "el" href = "group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e" > chSysUnlock< / a > .< / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
2010-11-22 05:53:37 +00:00
< div class = "dyncontent" >
< div class = "center" > < img src = "group___c_a_n_ga4e89a7d246119e077d27431a02586133_cgraph.png" border = "0" usemap = "#group___c_a_n_ga4e89a7d246119e077d27431a02586133_cgraph" alt = "" / > < / div >
< map name = "group___c_a_n_ga4e89a7d246119e077d27431a02586133_cgraph" id = "group___c_a_n_ga4e89a7d246119e077d27431a02586133_cgraph" >
< area shape = "rect" id = "node3" href = "group___c_a_n___l_l_d.html#gad6fff809711eb161f9c53acf4f3f8470" title = "Deactivates the CAN peripheral." alt = "" coords = "135,5,217,32" / >
< area shape = "rect" id = "node5" href = "group__scheduler.html#ga4e38b4bee3d2330f6a0f1cdb7660af20" title = "Performs a reschedule if a higher priority thread is runnable." alt = "" coords = "117,56,235,83" / >
< area shape = "rect" id = "node11" href = "group__semaphores.html#gae7972b6b22b80ac09bac5a186277ab81" title = "Performs a reset operation on the semaphore." alt = "" coords = "133,107,219,133" / >
< area shape = "rect" id = "node7" href = "group__scheduler.html#ga0257cf203e72a766a52059750cb97e6e" title = "Switches to the first thread on the runnable queue." alt = "" coords = "283,56,408,83" / >
< area shape = "rect" id = "node9" href = "group__scheduler.html#ga535d58cfb3436c8d4e4586c31c062298" title = "Inserts a thread in the Ready List." alt = "" coords = "457,81,543,108" / >
< area shape = "rect" id = "node14" href = "group__internals.html#gacacfe77140cab62948e63d898bf4dfba" title = "Removes the last-out Thread from a queue and returns it." alt = "" coords = "307,157,384,184" / >
< / map >
2010-08-10 03:11:02 +00:00
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "gad9c686d19b4319ef586af3631b779c6c" > < / a > <!-- doxytag: member="can.h::canTransmit" ref="gad9c686d19b4319ef586af3631b779c6c" args="(CANDriver *canp, const CANTxFrame *ctfp, systime_t timeout)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
2010-11-22 05:53:37 +00:00
< td class = "memname" > < a class = "el" href = "group__types.html#ga35bcb0c321cd7bc45bf1a11fa17ebdd3" > msg_t< / a > canTransmit < / td >
2010-08-10 03:11:02 +00:00
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "struct_c_a_n_driver.html" > CANDriver< / a > * < / td >
< td class = "paramname" > < em > canp< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const < a class = "el" href = "struct_c_a_n_tx_frame.html" > CANTxFrame< / a > * < / td >
< td class = "paramname" > < em > ctfp< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2010-11-22 05:53:37 +00:00
< td class = "paramtype" > < a class = "el" href = "group__types.html#gae3e32a98d431a02106616da3071832dd" > systime_t< / a > < / td >
2010-08-10 03:11:02 +00:00
< td class = "paramname" > < em > timeout< / em > < / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Can frame transmission. < / p >
< p > The specified frame is queued for transmission, if the hardware queue is full then the invoking thread is queued. < / p >
< dl class = "note" > < dt > < b > Note:< / b > < / dt > < dd > Trying to transmit while in sleep mode simply enqueues the thread.< / dd > < / dl >
< dl > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < tt > [in]< / tt > < / td > < td valign = "top" > < em > canp< / em > < / td > < td > pointer to the < code > < a class = "el" href = "struct_c_a_n_driver.html" title = "Structure representing an CAN driver." > CANDriver< / a > < / code > object < / td > < / tr >
< tr > < td valign = "top" > < tt > [in]< / tt > < / td > < td valign = "top" > < em > ctfp< / em > < / td > < td > pointer to the CAN frame to be transmitted < / td > < / tr >
< tr > < td valign = "top" > < tt > [in]< / tt > < / td > < td valign = "top" > < em > timeout< / em > < / td > < td > the number of ticks before the operation timeouts, the following special values are allowed:< / p >
< ul >
< li > < em > TIME_IMMEDIATE< / em > immediate timeout.< / li >
< li > < em > TIME_INFINITE< / em > no timeout.< / li >
< / ul >
< / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "return" > < dt > < b > Returns:< / b > < / dt > < dd > The operation result. < / dd > < / dl >
< dl > < dt > < b > Return values:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > RDY_OK< / em > < / td > < td > the frame has been queued for transmission. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > RDY_TIMEOUT< / em > < / td > < td > operation not finished within the specified time. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > RDY_RESET< / em > < / td > < td > driver stopped while waiting. < / td > < / tr >
< / table >
< / dd >
< / dl >
< p > Definition at line < a class = "el" href = "can_8c_source.html#l00151" > 151< / a > of file < a class = "el" href = "can_8c_source.html" > can.c< / a > .< / p >
< p > References < a class = "el" href = "group___c_a_n___l_l_d.html#ga81f2cbcb7b885628bdf54177375b7f9b" > can_lld_can_transmit()< / a > , < a class = "el" href = "group___c_a_n___l_l_d.html#ga7117eccbe00b5524e55546a4aa688446" > can_lld_transmit()< / a > , < a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870eaf6cc9dbdefe635c9db9dca135cc94610" > CAN_READY< / a > , < a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870ea7b6ee207a3d1bfec35374f0d3964e6aa" > CAN_SLEEP< / a > , < a class = "el" href = "struct_c_a_n_driver.html#a5ed8f92d00941a212ad798e05c001dcb" > CANDriver::cd_state< / a > , < a class = "el" href = "struct_c_a_n_driver.html#a2d4f41efdd17ff64233fd636873601c7" > CANDriver::cd_txsem< / a > , < a class = "el" href = "group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9" > chDbgAssert< / a > , < a class = "el" href = "group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844" > chDbgCheck< / a > , < a class = "el" href = "group__semaphores.html#ga924ec5d191bb8debe8727ae4dd5d6d03" > chSemWaitTimeoutS()< / a > , < a class = "el" href = "group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42" > chSysLock< / a > , < a class = "el" href = "group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e" > chSysUnlock< / a > , and < a class = "el" href = "group__scheduler.html#gae1c86078318e11c2fa57ee3c2ec69f61" > RDY_OK< / a > .< / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
2010-11-22 05:53:37 +00:00
< div class = "dyncontent" >
< div class = "center" > < img src = "group___c_a_n_gad9c686d19b4319ef586af3631b779c6c_cgraph.png" border = "0" usemap = "#group___c_a_n_gad9c686d19b4319ef586af3631b779c6c_cgraph" alt = "" / > < / div >
< map name = "group___c_a_n_gad9c686d19b4319ef586af3631b779c6c_cgraph" id = "group___c_a_n_gad9c686d19b4319ef586af3631b779c6c_cgraph" >
< area shape = "rect" id = "node3" href = "group___c_a_n___l_l_d.html#ga81f2cbcb7b885628bdf54177375b7f9b" title = "Determines whether a frame can be transmitted." alt = "" coords = "137,5,260,32" / >
< area shape = "rect" id = "node5" href = "group___c_a_n___l_l_d.html#ga7117eccbe00b5524e55546a4aa688446" title = "Inserts a frame into the transmit queue." alt = "" coords = "149,56,248,83" / >
< area shape = "rect" id = "node7" href = "group__semaphores.html#ga924ec5d191bb8debe8727ae4dd5d6d03" title = "Performs a wait operation on a semaphore with timeout specification." alt = "" coords = "139,107,259,133" / >
< area shape = "rect" id = "node9" href = "group__scheduler.html#ga306e564f678c1a39139639490c77e78b" title = "Puts the current thread to sleep into the specified state with timeout specification." alt = "" coords = "309,107,448,133" / >
< / map >
2010-08-10 03:11:02 +00:00
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "ga557d845167f6ab4f224b036860411db5" > < / a > <!-- doxytag: member="can.h::canReceive" ref="ga557d845167f6ab4f224b036860411db5" args="(CANDriver *canp, CANRxFrame *crfp, systime_t timeout)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
2010-11-22 05:53:37 +00:00
< td class = "memname" > < a class = "el" href = "group__types.html#ga35bcb0c321cd7bc45bf1a11fa17ebdd3" > msg_t< / a > canReceive < / td >
2010-08-10 03:11:02 +00:00
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "struct_c_a_n_driver.html" > CANDriver< / a > * < / td >
< td class = "paramname" > < em > canp< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > < a class = "el" href = "struct_c_a_n_rx_frame.html" > CANRxFrame< / a > * < / td >
< td class = "paramname" > < em > crfp< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2010-11-22 05:53:37 +00:00
< td class = "paramtype" > < a class = "el" href = "group__types.html#gae3e32a98d431a02106616da3071832dd" > systime_t< / a > < / td >
2010-08-10 03:11:02 +00:00
< td class = "paramname" > < em > timeout< / em > < / td > < td > < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Can frame receive. < / p >
< p > The function waits until a frame is received. < / p >
< dl class = "note" > < dt > < b > Note:< / b > < / dt > < dd > Trying to receive while in sleep mode simply enqueues the thread.< / dd > < / dl >
< dl > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < tt > [in]< / tt > < / td > < td valign = "top" > < em > canp< / em > < / td > < td > pointer to the < code > < a class = "el" href = "struct_c_a_n_driver.html" title = "Structure representing an CAN driver." > CANDriver< / a > < / code > object < / td > < / tr >
< tr > < td valign = "top" > < tt > [out]< / tt > < / td > < td valign = "top" > < em > crfp< / em > < / td > < td > pointer to the buffer where the CAN frame is copied < / td > < / tr >
< tr > < td valign = "top" > < tt > [in]< / tt > < / td > < td valign = "top" > < em > timeout< / em > < / td > < td > the number of ticks before the operation timeouts, the following special values are allowed:< / p >
< ul >
< li > < em > TIME_IMMEDIATE< / em > immediate timeout (useful in an event driven scenario where a thread never blocks for I/O).< / li >
< li > < em > TIME_INFINITE< / em > no timeout.< / li >
< / ul >
< / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "return" > < dt > < b > Returns:< / b > < / dt > < dd > The operation result. < / dd > < / dl >
< dl > < dt > < b > Return values:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > RDY_OK< / em > < / td > < td > a frame has been received and placed in the buffer. < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > RDY_TIMEOUT< / em > < / td > < td > operation not finished within the specified time or frame not immediately available if invoked using < code > TIME_IMMEDIATE< / code > . < / td > < / tr >
< tr > < td valign = "top" > < / td > < td valign = "top" > < em > RDY_RESET< / em > < / td > < td > driver stopped while waiting. < / td > < / tr >
< / table >
< / dd >
< / dl >
< p > Definition at line < a class = "el" href = "can_8c_source.html#l00192" > 192< / a > of file < a class = "el" href = "can_8c_source.html" > can.c< / a > .< / p >
< p > References < a class = "el" href = "group___c_a_n___l_l_d.html#ga27ca2bb8369163a8be3ebd020522f7b0" > can_lld_can_receive()< / a > , < a class = "el" href = "group___c_a_n___l_l_d.html#ga5c9d83ee107cfb59880c4bd19a7961bd" > can_lld_receive()< / a > , < a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870eaf6cc9dbdefe635c9db9dca135cc94610" > CAN_READY< / a > , < a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870ea7b6ee207a3d1bfec35374f0d3964e6aa" > CAN_SLEEP< / a > , < a class = "el" href = "struct_c_a_n_driver.html#aae5656b95d7632b579d098e95c3c77d4" > CANDriver::cd_rxsem< / a > , < a class = "el" href = "struct_c_a_n_driver.html#a5ed8f92d00941a212ad798e05c001dcb" > CANDriver::cd_state< / a > , < a class = "el" href = "group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9" > chDbgAssert< / a > , < a class = "el" href = "group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844" > chDbgCheck< / a > , < a class = "el" href = "group__semaphores.html#ga924ec5d191bb8debe8727ae4dd5d6d03" > chSemWaitTimeoutS()< / a > , < a class = "el" href = "group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42" > chSysLock< / a > , < a class = "el" href = "group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e" > chSysUnlock< / a > , and < a class = "el" href = "group__scheduler.html#gae1c86078318e11c2fa57ee3c2ec69f61" > RDY_OK< / a > .< / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
2010-11-22 05:53:37 +00:00
< div class = "dyncontent" >
< div class = "center" > < img src = "group___c_a_n_ga557d845167f6ab4f224b036860411db5_cgraph.png" border = "0" usemap = "#group___c_a_n_ga557d845167f6ab4f224b036860411db5_cgraph" alt = "" / > < / div >
< map name = "group___c_a_n_ga557d845167f6ab4f224b036860411db5_cgraph" id = "group___c_a_n_ga557d845167f6ab4f224b036860411db5_cgraph" >
< area shape = "rect" id = "node3" href = "group___c_a_n___l_l_d.html#ga27ca2bb8369163a8be3ebd020522f7b0" title = "Determines whether a frame has been received." alt = "" coords = "133,5,256,32" / >
< area shape = "rect" id = "node5" href = "group___c_a_n___l_l_d.html#ga5c9d83ee107cfb59880c4bd19a7961bd" title = "Receives a frame from the input queue." alt = "" coords = "145,56,244,83" / >
< area shape = "rect" id = "node7" href = "group__semaphores.html#ga924ec5d191bb8debe8727ae4dd5d6d03" title = "Performs a wait operation on a semaphore with timeout specification." alt = "" coords = "135,107,255,133" / >
< area shape = "rect" id = "node9" href = "group__scheduler.html#ga306e564f678c1a39139639490c77e78b" title = "Puts the current thread to sleep into the specified state with timeout specification." alt = "" coords = "304,107,443,133" / >
< / map >
2010-08-10 03:11:02 +00:00
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "ga377a78b04ad6733e24b31615b76cdada" > < / a > <!-- doxytag: member="can.h::canGetAndClearFlags" ref="ga377a78b04ad6733e24b31615b76cdada" args="(CANDriver *canp)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
2010-11-22 05:53:37 +00:00
< td class = "memname" > < a class = "el" href = "group___c_a_n___l_l_d.html#ga4a6894bc11434dfa96263dcd72735330" > canstatus_t< / a > canGetAndClearFlags < / td >
2010-08-10 03:11:02 +00:00
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "struct_c_a_n_driver.html" > CANDriver< / a > * < / td >
< td class = "paramname" > < em > canp< / em > < / td >
< td > ) < / td >
< td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Returns the current status mask and clears it. < / p >
< dl > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < tt > [in]< / tt > < / td > < td valign = "top" > < em > canp< / em > < / td > < td > pointer to the < code > < a class = "el" href = "struct_c_a_n_driver.html" title = "Structure representing an CAN driver." > CANDriver< / a > < / code > object < / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "return" > < dt > < b > Returns:< / b > < / dt > < dd > The status flags mask. < / dd > < / dl >
< p > Definition at line < a class = "el" href = "can_8c_source.html#l00218" > 218< / a > of file < a class = "el" href = "can_8c_source.html" > can.c< / a > .< / p >
< p > References < a class = "el" href = "struct_c_a_n_driver.html#a149df5bb5907beae27b8623d432cb20a" > CANDriver::cd_status< / a > , < a class = "el" href = "group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42" > chSysLock< / a > , and < a class = "el" href = "group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e" > chSysUnlock< / a > .< / p >
< / div >
< / div >
< a class = "anchor" id = "ga97caf4f277c09588c225ea2328a74cba" > < / a > <!-- doxytag: member="can.c::canSleep" ref="ga97caf4f277c09588c225ea2328a74cba" args="(CANDriver *canp)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void canSleep < / td >
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "struct_c_a_n_driver.html" > CANDriver< / a > * < / td >
< td class = "paramname" > < em > canp< / em > < / td >
< td > ) < / td >
< td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Enters the sleep mode. < / p >
< dl > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < tt > [in]< / tt > < / td > < td valign = "top" > < em > canp< / em > < / td > < td > pointer to the < code > < a class = "el" href = "struct_c_a_n_driver.html" title = "Structure representing an CAN driver." > CANDriver< / a > < / code > object < / td > < / tr >
< / table >
< / dd >
< / dl >
< p > Definition at line < a class = "el" href = "can_8c_source.html#l00234" > 234< / a > of file < a class = "el" href = "can_8c_source.html" > can.c< / a > .< / p >
< p > References < a class = "el" href = "group___c_a_n___l_l_d.html#ga90f2254324f338714bfe1663eb73a2ba" > can_lld_sleep()< / a > , < a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870eaf6cc9dbdefe635c9db9dca135cc94610" > CAN_READY< / a > , < a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870ea7b6ee207a3d1bfec35374f0d3964e6aa" > CAN_SLEEP< / a > , < a class = "el" href = "struct_c_a_n_driver.html#a424d4fd0c061b0237803c03c5815b450" > CANDriver::cd_sleep_event< / a > , < a class = "el" href = "struct_c_a_n_driver.html#a5ed8f92d00941a212ad798e05c001dcb" > CANDriver::cd_state< / a > , < a class = "el" href = "group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9" > chDbgAssert< / a > , < a class = "el" href = "group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844" > chDbgCheck< / a > , < a class = "el" href = "group__events.html#gaa24d9bed5b676b577200c4a8ebe3b8a3" > chEvtBroadcastI()< / a > , < a class = "el" href = "group__scheduler.html#ga4e38b4bee3d2330f6a0f1cdb7660af20" > chSchRescheduleS()< / a > , < a class = "el" href = "group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42" > chSysLock< / a > , and < a class = "el" href = "group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e" > chSysUnlock< / a > .< / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
2010-11-22 05:53:37 +00:00
< div class = "dyncontent" >
< div class = "center" > < img src = "group___c_a_n_ga97caf4f277c09588c225ea2328a74cba_cgraph.png" border = "0" usemap = "#group___c_a_n_ga97caf4f277c09588c225ea2328a74cba_cgraph" alt = "" / > < / div >
< map name = "group___c_a_n_ga97caf4f277c09588c225ea2328a74cba_cgraph" id = "group___c_a_n_ga97caf4f277c09588c225ea2328a74cba_cgraph" >
< area shape = "rect" id = "node3" href = "group___c_a_n___l_l_d.html#ga90f2254324f338714bfe1663eb73a2ba" title = "Enters the sleep mode." alt = "" coords = "135,5,223,32" / >
< area shape = "rect" id = "node5" href = "group__events.html#gaa24d9bed5b676b577200c4a8ebe3b8a3" title = "Signals all the Event Listeners registered on the specified Event Source." alt = "" coords = "128,56,229,83" / >
< area shape = "rect" id = "node9" href = "group__scheduler.html#ga4e38b4bee3d2330f6a0f1cdb7660af20" title = "Performs a reschedule if a higher priority thread is runnable." alt = "" coords = "120,107,237,133" / >
< area shape = "rect" id = "node7" href = "group__events.html#ga6c219038c3e618e2142c6e1601997907" title = "Pends a set of event flags on the specified Thread." alt = "" coords = "308,56,388,83" / >
< area shape = "rect" id = "node11" href = "group__scheduler.html#ga0257cf203e72a766a52059750cb97e6e" title = "Switches to the first thread on the runnable queue." alt = "" coords = "285,107,411,133" / >
< / map >
2010-08-10 03:11:02 +00:00
< / div >
< / p >
< / div >
< / div >
< a class = "anchor" id = "ga09737d4ae5be724bf791a309e8a28dff" > < / a > <!-- doxytag: member="can.c::canWakeup" ref="ga09737d4ae5be724bf791a309e8a28dff" args="(CANDriver *canp)" -->
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void canWakeup < / td >
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "struct_c_a_n_driver.html" > CANDriver< / a > * < / td >
< td class = "paramname" > < em > canp< / em > < / td >
< td > ) < / td >
< td > < / td >
< / tr >
< / table >
< / div >
< div class = "memdoc" >
< p > Enforces leaving the sleep mode. < / p >
< dl class = "note" > < dt > < b > Note:< / b > < / dt > < dd > The sleep mode is supposed to be usually exited automatically by an hardware event.< / dd > < / dl >
< dl > < dt > < b > Parameters:< / b > < / dt > < dd >
< table border = "0" cellspacing = "2" cellpadding = "0" >
< tr > < td valign = "top" > < tt > [in]< / tt > < / td > < td valign = "top" > < em > canp< / em > < / td > < td > pointer to the < code > < a class = "el" href = "struct_c_a_n_driver.html" title = "Structure representing an CAN driver." > CANDriver< / a > < / code > object < / td > < / tr >
< / table >
< / dd >
< / dl >
< p > Definition at line < a class = "el" href = "can_8c_source.html#l00258" > 258< / a > of file < a class = "el" href = "can_8c_source.html" > can.c< / a > .< / p >
< p > References < a class = "el" href = "group___c_a_n___l_l_d.html#ga7a5e18d180ae064548783e6ac18903ba" > can_lld_wakeup()< / a > , < a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870eaf6cc9dbdefe635c9db9dca135cc94610" > CAN_READY< / a > , < a class = "el" href = "group___c_a_n.html#ggaca62464ffdcedae03d49adf3f6ce870ea7b6ee207a3d1bfec35374f0d3964e6aa" > CAN_SLEEP< / a > , < a class = "el" href = "struct_c_a_n_driver.html#a5ed8f92d00941a212ad798e05c001dcb" > CANDriver::cd_state< / a > , < a class = "el" href = "struct_c_a_n_driver.html#ab860f0342e594220bd9428bed397614e" > CANDriver::cd_wakeup_event< / a > , < a class = "el" href = "group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9" > chDbgAssert< / a > , < a class = "el" href = "group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844" > chDbgCheck< / a > , < a class = "el" href = "group__events.html#gaa24d9bed5b676b577200c4a8ebe3b8a3" > chEvtBroadcastI()< / a > , < a class = "el" href = "group__scheduler.html#ga4e38b4bee3d2330f6a0f1cdb7660af20" > chSchRescheduleS()< / a > , < a class = "el" href = "group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42" > chSysLock< / a > , and < a class = "el" href = "group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e" > chSysUnlock< / a > .< / p >
< p > < div class = "dynheader" >
Here is the call graph for this function:< / div >
2010-11-22 05:53:37 +00:00
< div class = "dyncontent" >
< div class = "center" > < img src = "group___c_a_n_ga09737d4ae5be724bf791a309e8a28dff_cgraph.png" border = "0" usemap = "#group___c_a_n_ga09737d4ae5be724bf791a309e8a28dff_cgraph" alt = "" / > < / div >
< map name = "group___c_a_n_ga09737d4ae5be724bf791a309e8a28dff_cgraph" id = "group___c_a_n_ga09737d4ae5be724bf791a309e8a28dff_cgraph" >
< area shape = "rect" id = "node3" href = "group___c_a_n___l_l_d.html#ga7a5e18d180ae064548783e6ac18903ba" title = "Enforces leaving the sleep mode." alt = "" coords = "141,5,243,32" / >
< area shape = "rect" id = "node5" href = "group__events.html#gaa24d9bed5b676b577200c4a8ebe3b8a3" title = "Signals all the Event Listeners registered on the specified Event Source." alt = "" coords = "141,56,243,83" / >
< area shape = "rect" id = "node9" href = "group__scheduler.html#ga4e38b4bee3d2330f6a0f1cdb7660af20" title = "Performs a reschedule if a higher priority thread is runnable." alt = "" coords = "133,107,251,133" / >
< area shape = "rect" id = "node7" href = "group__events.html#ga6c219038c3e618e2142c6e1601997907" title = "Pends a set of event flags on the specified Thread." alt = "" coords = "321,56,401,83" / >
< area shape = "rect" id = "node11" href = "group__scheduler.html#ga0257cf203e72a766a52059750cb97e6e" title = "Switches to the first thread on the runnable queue." alt = "" coords = "299,107,424,133" / >
< / map >
2010-08-10 03:11:02 +00:00
< / div >
< / p >
< / div >
< / div >
< / div >
< hr size = "1" > < address style = "text-align: right;" > < small >
2010-11-30 04:54:43 +00:00
Generated on Sun Nov 28 2010 14:09:57 for ChibiOS/RT by < a href = "http://www.doxygen.org/index.html" > < img src = "doxygen.png" alt = "doxygen" align = "middle" border = "0" > < / a > 1.7.1< / small > < / address >
2010-08-10 03:11:02 +00:00
< / body >
< / html >