亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? can18xx8.h

?? PIC 18F8680 CAN bus Demo
?? H
?? 第 1 頁 / 共 2 頁
字號:
 * PreCondition:    MCU must be in Configuration mode or else these
 *                  values will be ignored.
 *
 * Input:           SJW     - SJW value as defined in 18CXX8 datasheet
 *                              (Must be between 1 thru 4)
 *                  BRP     - BRP value as defined in 18CXX8 datasheet
 *                              (Must be between 1 thru 64)
 *                  PHSEG1  - PHSEG1 value as defined in 18CXX8
 *                            datasheet
 *                              (Must be between 1 thru 8)
 *                  PHSEG2  - PHSEG2 value as defined in 18CXX8
 *                            datasheet
 *                              (Must be between 1 thru 8)
 *                  PROPSEG - PROPSEG value as defined in 18CXX8
 *                            datasheet
 *                              (Must be between 1 thru 8)
 *                  flags   - Value of type enum CAN_CONFIG_FLAGS
 *
 * Output:          CAN bit rate is set.
 *                  All masks registers are set '0'
 *                  to allow all messages.
 *                  Filter registers are set according to flag value.
 *                  If (config & CAN_CONFIG_VALID_XTD_MSG)
 *                      Set all filters to XTD_MSG
 *                  Else if (config & CONFIG_VALID_STD_MSG)
 *                      Set all filters to STD_MSG
 *                  Else
 *                      Set half of the filters to STD while rests to
 *                      XTD_MSG.
 *
 * Side Effects:    All pending transmissions are aborted.
 ********************************************************************/
void CANInitialize(BYTE SJW,
                    BYTE BRP,
                    BYTE PHSEG1,
                    BYTE PHSEG2,
                    BYTE PROPSEG,
                    enum CAN_CONFIG_FLAGS config);

//////////////////////////////////////////////////////////////////////


/*********************************************************************
 * Function:        void CANSetOperationMode(CAN_OP_MODE mode)
 *
 * PreCondition:    None
 *
 * Input:           mode    - Operation mode code
 *                            must be of type enum CAN_OP_MODES
 *
 * Output:          MCU is set to requested mode
 *
 * Side Effects:    None
 *
 * Note:            This is a blocking call.  It will not return until
 *                  requested mode is set.
 ********************************************************************/
void CANSetOperationMode(enum CAN_OP_MODE mode);


//////////////////////////////////////////////////////////////////////


/*********************************************************************
 * Macro:           void CANSetOperationModeNoWait(CAN_OP_MODE mode)
 *
 * PreCondition:    None
 *
 * Input:           mode    - Operation mode code
 *                            must be of type enum CAN_OP_MODES
 *
 * Output:          MCU is set to requested mode
 *
 * Side Effects:    None
 *
 * Note:            This is a non-blocking call.
 *                  It does not verify that
 *                  CAN module is switched to requested mode or not.
 *                  Caller must use CANGetOperationMode() to verify
 *                  correct operation mode before performing mode
 *                  specific operation.
 *
 ********************************************************************/
#define CANSetOperationModeNoWait(mode) (CANCON = mode)

//////////////////////////////////////////////////////////////////////

/*********************************************************************
 * Macro:           CAN_OP_MODE CANSetOperationMode()
 *
 * PreCondition:    None
 *
 * Input:           None
 *
 * Output:          Current operational mode of CAN module is returned
 *
 * Side Effects:    None
 *
 ********************************************************************/
#define CANGetOperationMode() (CANCON & CAN_OP_MODE_BITS)

//////////////////////////////////////////////////////////////////////

/*********************************************************************
 * Function:        void CANSetBaudRate(BYTE SJW,
 *                                      BYTE BRP,
 *                                      BYTE PHSEG1,
 *                                      BYTE PHSEG2,
 *                                      BYTE PROPSEG,
 *                                      enum CAN_CONFIG_FLAGS flags)
 *
 * PreCondition:    MCU must be in Configuration mode or else these
 *                  values will be ignored.
 *
 * Input:           SJW     - SJW value as defined in 18CXX8 datasheet
 *                              (Must be between 1 thru 4)
 *                  BRP     - BRP value as defined in 18CXX8 datasheet
 *                              (Must be between 1 thru 64)
 *                  PHSEG1  - PHSEG1 value as defined in 18CXX8
 *                            datasheet
 *                              (Must be between 1 thru 8)
 *                  PHSEG2  - PHSEG2 value as defined in 18CXX8
 *                            datasheet
 *                              (Must be between 1 thru 8)
 *                  PROPSEG - PROPSEG value as defined in 18CXX8
 *                            datasheet
 *                              (Must be between 1 thru 8)
 *                  flags   - Value of type enum CAN_CONFIG_FLAGS
 *
 * Output:          CAN bit rate is set as per given values.
 *
 * Side Effects:    None
 *
 ********************************************************************/
void CANSetBaudRate(BYTE SJW,
                     BYTE BRP,
                     BYTE PHSEG1,
                     BYTE PHSEG2,
                     BYTE PROPSEG,
                     enum CAN_CONFIG_FLAGS);

//////////////////////////////////////////////////////////////////////

/*********************************************************************
 * Function:        void CANSetMask(enum CAN_MASK code,
 *                                  unsigned long val,
 *                                  enum CAN_CONFIG_FLAGS type)
 *
 * PreCondition:    MCU must be in Configuration mode.  If not, all
 *                  values
 *                  will be ignored.
 *
 * Input:           code    - One of CAN_MASK value
 *                  val     - Actual mask register value.
 *                  type    - Type of message to filter either
 *                            CAN_CONFIG_XTD_MSG or CAN_CONFIG_STD_MSG
 *
 * Output:          Given value is bit adjusted to appropriate buffer
 *                  mask registers.
 *
 * Side Effects:    None
 ********************************************************************/
void CANSetMask(enum CAN_MASK code,
                unsigned long Value,
                enum CAN_CONFIG_FLAGS type);

//////////////////////////////////////////////////////////////////////

/*********************************************************************
 * Function:        void CANSetFilter(enum CAN_FILTER code,
 *                                    unsigned long val,
 *                                    enum CAN_CONFIG type)
 *
 * PreCondition:    MCU must be in Configuration mode.  If not, all
 *                  values will be ignored.
 *
 * Input:           code    - One of CAN_FILTER value
 *                  val     - Actual filter register value.
 *                  type    - Type of message to filter either
 *                            CAN_CONFIG_XTD_MSG or CAN_CONFIG_STD_MSG
 *
 * Output:          Given value is bit adjusted to appropriate buffer
 *                  filter registers.
 *
 * Side Effects:    None
 ********************************************************************/
void CANSetFilter( enum CAN_FILTER code,
                    unsigned long Value,
                    enum CAN_CONFIG_FLAGS);

//////////////////////////////////////////////////////////////////////

/*********************************************************************
 * Function:        BOOL CANSendMessage(unsigned long id,
 *                                  BYTE *Data,
 *                                  BYTE DataLen,
 *                                  enum CAN_TX_MSG_FLAGS MsgFlags)
 *
 * PreCondition:    None
 *
 * Input:           id          - CAN message identifier.
 *                                Only 11 or 29 bits may be used
 *                                depending on standard or extended
 *                                message type.
 *                  Data        - Data bytes of upto 8 bytes in length
 *                  DataLen     - Data length from 1 thru 8.
 *                  MsgFlags    - One or CAN_TX_MSG_FLAGS values ANDed
 *                                together
 *
 * Output:          If at least one empty transmit buffer is found,
 *                  given message is queued to be transmitted. If none
 *                  found FALSE value is returned.
 *
 * Side Effects:    None
 *
 ********************************************************************/
BOOL CANSendMessage(unsigned long id,
                     BYTE *Data,
                     BYTE DataLen,
                     enum CAN_TX_MSG_FLAGS MsgFlags);

//////////////////////////////////////////////////////////////////////

/*********************************************************************
 * Function:        BOOL CANReceiveMessage(unsigned long *id,
 *                                  BYTE *Data,
 *                                  BYTE *DataLen,
 *                                  enum CAN_RX_MSG_FLAGS *MsgFlags)
 *
 * PreCondition:    None
 *
 * Input:           None
 *
 * Output:          id          - CAN message identifier.
 *                  Data        - Data bytes of upto 8 bytes in length
 *                  DataLen     - Data length from 1 thru 8.
 *                  MsgFlags    - One or CAN_RX_MSG_FLAGS values ANDed
 *                                together
 *
 * Output:          If at least one full receive buffer is found,
 *                  it is extrated and returned. If none found FALSE
 *                  value is returned.
 *
 * Side Effects:    None
 *
 ********************************************************************/
BOOL CANReceiveMessage(unsigned long* id,
                        BYTE *Data,
                        BYTE *DataLen,
                        enum CAN_RX_MSG_FLAGS *MsgFlags);

//////////////////////////////////////////////////////////////////////

/*********************************************************************
 * Macro:           BYTE CANGetTxErrorCount()
 *
 * PreCondition:    None
 *
 * Input:           None
 *
 * Output:          Current transmit error count as defined by
 *                  CAN specifications.
 *
 * Side Effects:    None
 *
 ********************************************************************/
#define CANGetTxErrorCount()    (TXERRCNT)

//////////////////////////////////////////////////////////////////////

/*********************************************************************
 * Macro:           BYTE CANGetRxErrorCount()
 *
 * PreCondition:    None
 *
 * Input:           None
 *
 * Output:          Current receive error count as defined by
 *                  CAN specifications.
 *
 * Side Effects:    None
 *
 ********************************************************************/
#define CANGetRxErrorCount()    (RXERRCNT)

//////////////////////////////////////////////////////////////////////

/*********************************************************************
 * Macro:           BOOL CANIsBusOff()
 *
 * PreCondition:    None
 *
 * Input:           None
 *
 * Output:          TRUE if CAN Module is off due to excessive error
 *                  FALSE is it is not off.
 *
 * Side Effects:    None
 *
 ********************************************************************/
#define CANIsBusOff()           (COMSTAT_TXB0)

//////////////////////////////////////////////////////////////////////

/*********************************************************************
 * Macro:           BOOL CANIsTxPassive()
 *
 * PreCondition:    None
 *
 * Input:           None
 *
 * Output:          TRUE if CAN transmit module is error passive as
 *                  defined by CAN specifications.
 *
 * Side Effects:    None
 *
 ********************************************************************/
#define CANIsTxPassive()        (COMSTAT_TXBP)

//////////////////////////////////////////////////////////////////////

/*********************************************************************
 * Macro:           BYTE CANIsRxPassive()
 *
 * PreCondition:    None
 *
 * Input:           None
 *
 * Output:          TRUE if CAN receive module is error active as
 *                  defined by CAN specifications.
 *
 * Side Effects:    None
 *
 ********************************************************************/
#define CANIsRxPassive()        (COMSTAT_RXBP)

//////////////////////////////////////////////////////////////////////

/*********************************************************************
 * Macro:           void CANAbortAll()
 *
 * PreCondition:    None
 *
 * Input:           None
 *
 * Output:          None
 *
 * Side Effects:    None
 *
 ********************************************************************/
#define CANAbortAll()           (CANCON_ABAT = 1)

//////////////////////////////////////////////////////////////////////

/*********************************************************************
 * Macro:           BOOL  CANIsRxReady()
 *
 * PreCondition:    None
 *
 * Input:           None
 *
 * Output:          TRUE if at least one of the CAN receive buffer is
 *                  empty FALSE if none receive buffers are empty.
 *
 * Side Effects:    None
 *
 ********************************************************************/
#define CANIsRxReady()          (RXB0CON_RXFUL || RXB1CON_RXFUL)

//////////////////////////////////////////////////////////////////////

/*********************************************************************
 * Macro:           BOOL CANIsTxReady()
 *
 * PreCondition:    None
 *
 * Input:           None
 *
 * Output:          TRUE if at least one CAN transmit buffer is empty
 *                  FALSE if all CAN transmit buffers are full
 *
 * Side Effects:    None
 *
 ********************************************************************/
#define CANIsTxReady()          (!TXB0CON_TXREQ || \
                                 !TXB1CON_TXREQ || \
                                 !TXB2CON_TXREQ )

#endif      // CAN18XX8_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆精品视频在线| 国产精品女主播在线观看| 成人免费小视频| 亚洲一级电影视频| 卡一卡二国产精品| 欧美视频精品在线| 自拍视频在线观看一区二区| 国产一区二区三区高清播放| 在线播放一区二区三区| 尤物视频一区二区| 成人av网在线| 精品国产欧美一区二区| 午夜精品福利久久久| 色婷婷av一区| 中文字幕一区二区三区四区| 国产美女娇喘av呻吟久久| 欧美一级搡bbbb搡bbbb| 亚欧色一区w666天堂| 在线看日韩精品电影| 亚洲欧美怡红院| 成人免费高清在线观看| 久久综合中文字幕| 人妖欧美一区二区| 91精品国产aⅴ一区二区| 夜夜嗨av一区二区三区中文字幕| 成人开心网精品视频| 亚洲国产精品激情在线观看| 精品午夜一区二区三区在线观看 | 久久久av毛片精品| 亚洲电影你懂得| 在线观看免费亚洲| 亚洲精品国产视频| 色久综合一二码| 亚洲一区二区三区中文字幕| 日本久久一区二区| 亚洲二区视频在线| 欧美日韩国产一区| 日韩高清一级片| ww久久中文字幕| 国产一区二区三区四 | 日本精品裸体写真集在线观看| 中文在线一区二区| 97久久超碰国产精品| 亚洲嫩草精品久久| 欧美三级视频在线| 日韩福利电影在线观看| 欧美videofree性高清杂交| 91麻豆精品国产91| 亚洲激情图片一区| 欧洲视频一区二区| 日韩黄色在线观看| 精品91自产拍在线观看一区| 高清在线成人网| 亚洲欧美日韩国产一区二区三区| 在线亚洲一区观看| 日本不卡中文字幕| 国产精品嫩草99a| 欧洲精品在线观看| 久久国产人妖系列| 国产精品的网站| 9191成人精品久久| 国产成人免费视频一区| 亚洲猫色日本管| 欧美电影免费观看高清完整版在线 | 国产成人av福利| 一区二区三区中文字幕| 亚洲成人资源网| 欧美日韩免费视频| 国产一区 二区 三区一级| 天天影视色香欲综合网老头| 欧美一卡二卡在线| 成人高清视频免费观看| 天堂蜜桃91精品| 中文字幕不卡在线| 日韩午夜电影在线观看| 99精品久久99久久久久| 美国毛片一区二区| 一区二区三区在线观看国产| 精品日韩一区二区三区免费视频| 91猫先生在线| 国产福利一区在线| 男女男精品视频| 一区二区三区丝袜| 国产日本欧美一区二区| 欧美一区二区精品| 91精品办公室少妇高潮对白| 国产精品综合在线视频| 美女任你摸久久| 亚洲福中文字幕伊人影院| 国产精品三级av在线播放| 欧美成人激情免费网| 欧美日韩一区二区三区高清 | 午夜婷婷国产麻豆精品| 国产精品久久夜| 欧美精品一区二区三区蜜桃| 欧美日韩免费电影| 91国在线观看| 99国产精品视频免费观看| 国产一区不卡视频| 麻豆精品久久精品色综合| 天天爽夜夜爽夜夜爽精品视频| 亚洲欧洲av一区二区三区久久| 欧美电影免费观看完整版| 欧美日韩久久久一区| 在线一区二区视频| 色综合久久66| 色哟哟在线观看一区二区三区| 国产福利电影一区二区三区| 韩国精品主播一区二区在线观看 | 欧美日韩午夜在线| 欧美在线视频不卡| 色999日韩国产欧美一区二区| 成人深夜在线观看| 成人午夜电影久久影院| 成人综合在线视频| 国产成人在线影院| 国产激情精品久久久第一区二区 | 91论坛在线播放| 99久久精品免费精品国产| eeuss鲁一区二区三区| 国产在线一区二区| 国产黑丝在线一区二区三区| 国产精品中文字幕欧美| 福利电影一区二区三区| 99综合影院在线| 色综合久久久久网| 欧美日韩国产乱码电影| 欧美一二区视频| 久久久久久久久岛国免费| 国产欧美日韩在线| 亚洲欧美日韩久久精品| 亚洲一线二线三线视频| 日本一区二区免费在线观看视频| 久久众筹精品私拍模特| 久久精品在线观看| 亚洲人成亚洲人成在线观看图片| 一区二区国产视频| 蜜桃视频一区二区| 国产成人免费视频一区| 日本韩国欧美国产| 欧美电影在线免费观看| 久久精品男人天堂av| 亚洲天堂a在线| 日韩极品在线观看| 国产盗摄视频一区二区三区| 色综合久久久久综合体| 日韩免费看网站| 中文字幕一区二区三区不卡在线| 亚洲一区二区免费视频| 国产在线观看免费一区| 99精品偷自拍| 欧美mv日韩mv亚洲| 亚洲女人的天堂| 国内成人自拍视频| 久久99精品国产.久久久久久| 国产一区二区导航在线播放| 日韩一区二区电影网| 久久综合九色欧美综合狠狠| 亚洲色图欧美在线| 亚洲h精品动漫在线观看| 国产精品自拍三区| 欧美日韩小视频| 国产精品全国免费观看高清| 奇米888四色在线精品| 99热这里都是精品| 精品久久五月天| 午夜不卡av在线| av影院午夜一区| 2023国产一二三区日本精品2022| 一区二区三区欧美| 成人免费观看男女羞羞视频| 日韩亚洲欧美在线| 亚洲成人在线免费| 成人动漫一区二区在线| 精品粉嫩aⅴ一区二区三区四区| 亚洲自拍偷拍图区| 不卡电影一区二区三区| 久久综合久久综合亚洲| 日韩福利视频网| 欧美日韩国产综合草草| 亚洲色图一区二区| 成人免费不卡视频| 中文字幕亚洲视频| 国产精品无码永久免费888| 免费看日韩a级影片| 91免费视频网址| 中文子幕无线码一区tr| 国产乱码精品一区二区三区忘忧草 | 91精品在线观看入口| 一区二区三区欧美久久| 91在线看国产| 国产精品热久久久久夜色精品三区| 国产剧情一区二区| 久久久久久久综合日本| 久久99在线观看| 精品电影一区二区| 国精产品一区一区三区mba视频| 日韩免费看的电影| 国产在线播精品第三| 久久久久88色偷偷免费|