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

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

?? drv_can.h

?? picos18的can驅動樣例程序
?? H
字號:
/**********************************************************************/
/*                                                                    */
/* File name: drv_can.h                                               */
/*                                                                    */
/* Since:     2005-Jan-19                                             */
/*                                                                    */
/* Version:   PICos18 v2.05                                           */
/*            Copyright (C) 2003, 2004, 2005 Pragmatec.               */
/*            CAN driver v1.05                                        */
/*                                                                    */
/* Author:    Designed by Pragmatec S.A.R.L.        www.pragmatec.net */
/*            MONTAGNE Xavier [XM]      xavier.montagne@pragmatec.net */
/*            ROZIER Bertrand [RZR]     bertrand.rozier@pragmatec.net */
/*                                                                    */
/* Purpose:   PIC18 CAN peripheral management.                        */
/*            It allows task tosend data at the send time through a   */
/*            dedicated FIFO, and to wait for a certain CAN frame.    */ 
/*                                                                    */
/* Distribution: This file is part of PICos18.                        */
/*            PICos18 is free software; you can redistribute it       */
/*            and/or modify it under the terms of the GNU General     */
/*            Public License as published by the Free Software        */
/*            Foundation; either version 2, or (at your option)       */
/*            any later version.                                      */
/*                                                                    */
/*            PICos18 is distributed in the hope that it will be      */
/*            useful, but WITHOUT ANY WARRANTY; without even the      */
/*            implied warranty of MERCHANTABILITY or FITNESS FOR A    */
/*            PARTICULAR PURPOSE.  See the GNU General Public         */
/*            License for more details.                               */
/*                                                                    */
/*            You should have received a copy of the GNU General      */
/*            Public License along with gpsim; see the file           */
/*            COPYING.txt. If not, write to the Free Software         */
/*            Foundation, 59 Temple Place - Suite 330,                */
/*            Boston, MA 02111-1307, USA.                             */
/*                                                                    */
/*          > A special exception to the GPL can be applied should    */
/*            you wish to distribute a combined work that includes    */
/*            PICos18, without being obliged to provide the source    */
/*            code for any proprietary components.                    */
/*                                                                    */
/* History:                                                           */
/* 2005/01/19 [XM]  Create this file.                                 */
/* 2006/03/03 [RZR]  Add Pre-defined BaudRate selection               */
/*                   Correct TX buffer allocation bug				  */
/*                                                                    */
/**********************************************************************/


#ifndef _CAN_DRV_H_
#define _CAN_DRV_H_

#include "pro_man.h"
#include "even_man.h"
#include "alarm.h"

#ifndef NULL
#define NULL 0
#endif

/*****************************************************
 * Definition dedicated to the local functions.
 ****************************************************/
#define CAN_MSG_SENT        0x02
#define CAN_FREE            0x00
#define CAN_FULL            0x01
#define CAN_EMPTY           0x00
#define TRUE                0x01
#define FALSE               0x00
#define TX_MESSAGE          0x01
#define RX_MESSAGE          0x00 
	
struct _CAN_frame {
   unsigned long CANID;
   unsigned char length;
   unsigned char data[8];
   unsigned char CallerID;
   unsigned char state;
   struct _CAN_frame *next;
};
typedef struct _CAN_frame CAN_message_t, *CAN_message_tRef;

#define          CAN_freeMsg(x)        x.state = CAN_FREE;



////////////////////////////////////////////////////////////////////////////////////
//
//	HARDWARE OVERLAY TYPES......
//	
//	HARDWARE........
//
//	Declare a type that matches the structure of the TX and RX
//	buffers so that we can overlay the structure variables into
//	the correct locations within the buffer.

//
//	TX Buffer looks like this.....
typedef volatile near struct _TXBUF{
	char	TXCON;
	char	SIDH;
	char	SIDL;
	char	EIDH;
	char	EIDL;
	char	DLC;
	char	DATA[8];
	char	CANSTAT;
	char	blank;
} TXBUF_t,	* pTXBUF_t;


//
//	TX HARDWARE BUFFERS
#define TXBUF_START		((TXBUF_t * )&TXB0CON)		//	See CAN Controller Register Map....
#define TXBUF_END		((TXBUF_t * )&TXB2CON)		//	Table 19-1 perhaps?
//
//	RX Buffer looks like this.....
typedef volatile near struct _RXBUF {
	char	RXCON;
	char	SIDH;
	char	SIDL;
	char	EIDH;
	char	EDIL;
	char	DLC;
	char	data[8];
	char	CANSTAT;
}RXBUF_t,	*pRXBUF_t;

#define	RXBUF_START		((pRXBUF_t)&RXB0CON)		//	See CAN Controller Register Map
#define	RXBUF_END		((pRXBUF_t)&RXB1CON)		//	Table 19-1
#define	RXBUF_STEP		0x01
#define	RX_BUFFER_FULL	0b10000000
//								^-- Mask applied to RXB?CON to test for buffer full

////////////////////////////////////////////////////////////////////////////////////////
//	Generic RX Filter and Mask type
//
//	It looks like all of the filters follow this type of repeating pattern
//	within the register area.  Use that to our advantage to define
//	an overlay for this area too...
typedef volatile near struct _RXFM {
	char	SIDH;
	char	SIDL;
	char	EIDH;
	char	EIDL;
}RXFilterMask_t,	*pRXFilterMask_t;

#define	RXFILTER_START	0xF00			//	See CAN Controller Register Map
#define	RXFILTER_END		0xF1C			//	Table 19-1
#define	RXFILTER_STEP		0x04

//////////////////////////////////////////////////////////////////////////////////
//
//	Function macros for Transmit Buffer Control
//
#define		TX_ABORTED(psTXBuf)				((psTXBuf->TXCON)&0x40)
#define		TX_LOSTARB(psTXBuf)				((psTXBuf->TXCON)&0x20)
#define		TX_ERROR(psTXBuf)					((psTXBuf->TXCON)&0x10)
#define		SET_TXREQ(psTXBuf)				((psTXBuf->TXCON) |= 0x08)
#define		CLEAR_TXREQ(psTXBuf)				((psTXBuf->TXCON) &= (~(1<<4)))
#define		GET_TXPRIORITY(psTXBuf)			((psTXBuf->TXCON) & 0x03)			
#define		SET_TXPRIORITY(psTXBuf,u8Priority)	((psTXBuf->TXCON) = u8Priority & 0x03)



//	Add some fancy macro definitions for 11-bit identifiers
//	Example usage: regularID = GET_ID(&RX0BUFFER);
#define		GET_TXID(psTXBuf)					(((psTXBuf->SIDH) << 3) + ((psTXBuf->SIDL & 0x0E) >> 5))
#define		SET_TXID(psTXBuf,u16ID)			psTXBuf->SIDH=((u16ID&0x7FF)>>3);psTXBuf->SIDL = ((u16ID & 0x07)<< 5)
#define		SET_TXDLC(psTXBuf,u8Length)		psTXBuf->DLC = (u8Length & 0x0F)

/////////////////////////////////////////////////////////////////////////////////////////
//
//	Function macros for Receive Buffer Control
//

#define		GET_RXID(psRXBuf)				(((unsigned long)(psRXBuf->SIDH)<<3)|(((unsigned long)(psRXBuf->SIDL)>>5)&0x07))
#define 	GET_RXDLC(psRXBuf)				(psRXBuf->DLC & 0x0F)

#define		RX_IS_FULL(psRXBuf)				((psRXBuf->RXCON) & 0x80)
#define		GET_RXMODE(psRXBuf)				(((psRXBuf->RXCON) &0x60) >> 5)
#define		SET_RXMODE(psRXBuf,u8Mode)		(psRXBuf->RXCON = ((u8Mode) & 0x03) << 5)
#define		IS_RTR(psRXBuf)					(((psRXBuf->RXCON) & 0x04) >> 3)
#define		SET_RXDBEN						(RXB0CON |= 0x04)


/////////////////////////////////////////////////////////////////////////////////////////
//
//	Other Hardware based defines
//


//	Set interrupts on receive only
#define	CAN_PIE_INT_MSK	0b00000011

#define	TXCON_ERRORS	0b01110000
#define TXCON_EMPTY		0b00001000

StatusType		CAN_FindSpeed(unsigned char * speed);
StatusType		CAN_SetSpeed(char speed);
StatusType       CAN_enqMsg(CAN_message_tRef toEnqueue);
CAN_message_tRef CAN_deqMsg(void);
StatusType       CopyHard2FrameBuffer(void);
StatusType       CopyFrameBuffer2Hard(pTXBUF_t pTxbuf);
StatusType       WriteCANBuffer(void);
StatusType       ReadCANBuffer(void);
StatusType       CAN_RCV_Register(CAN_message_tRef toEnqueue);
void             CAN_config(void);


#endif /* _CAN_DRV_H_ */

/* End of File : drv_can.h */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久三级| 日韩久久精品一区| 亚洲主播在线播放| 欧美日韩免费一区二区三区视频 | 在线看日本不卡| 日韩av电影天堂| 精品久久久久久久久久久久久久久久久 | 久久精品网站免费观看| 国产不卡在线视频| 日韩理论片在线| 在线播放91灌醉迷j高跟美女| 久久99精品国产麻豆不卡| 久久精品水蜜桃av综合天堂| av亚洲精华国产精华精华| 夜夜爽夜夜爽精品视频| 日韩免费电影网站| 成人国产一区二区三区精品| 亚洲在线视频一区| 日韩欧美高清一区| 91亚洲精华国产精华精华液| 日韩精品久久理论片| 日本一区二区三区高清不卡| 一本大道综合伊人精品热热| 另类欧美日韩国产在线| 中文字幕视频一区二区三区久| 欧美性猛交xxxx黑人交| 国产一区二区三区在线观看免费| 亚洲丝袜美腿综合| 日韩一区二区三区免费观看| 成人午夜视频网站| 丝袜美腿亚洲色图| 亚洲欧洲在线观看av| 欧美一区午夜视频在线观看| 成人av一区二区三区| 日本一不卡视频| 亚洲欧洲中文日韩久久av乱码| 国产日韩精品视频一区| 丝袜美腿亚洲综合| 中文无字幕一区二区三区| 欧美性一二三区| 成人h动漫精品一区二区| 视频一区中文字幕| 亚洲日本青草视频在线怡红院 | 风流少妇一区二区| 日韩精品一级二级 | 国产精品99久久久久久久女警| 亚洲精品免费在线| 国产亚洲人成网站| 日韩一区二区精品葵司在线| 91视频国产观看| 国产91在线观看丝袜| 日韩精品电影在线| 亚洲综合成人在线| 亚洲乱码国产乱码精品精可以看 | 一区二区在线电影| 国产精品久久夜| 久久精品欧美一区二区三区麻豆| 在线播放中文字幕一区| 欧美日韩国产高清一区二区| 福利电影一区二区| 国产一区二区不卡老阿姨| 日韩高清一级片| 一区二区三国产精华液| 国产精品国产三级国产专播品爱网| 精品久久久久久综合日本欧美| 在线播放91灌醉迷j高跟美女| 欧美综合欧美视频| 91免费小视频| 99久久精品国产观看| 高清成人在线观看| 国产成人自拍高清视频在线免费播放| 日韩成人一区二区三区在线观看| 亚洲精品乱码久久久久久久久| 亚洲国产精品成人综合 | 亚洲品质自拍视频| **网站欧美大片在线观看| 国产亚洲欧美日韩日本| 久久女同互慰一区二区三区| 26uuu国产一区二区三区| 欧美成人a在线| 久久久噜噜噜久噜久久综合| 精品国产网站在线观看| 欧美成人video| 久久久精品tv| 国产视频一区二区在线| 中文在线一区二区| 亚洲欧洲精品一区二区三区| 亚洲欧美激情一区二区| 一区二区久久久久久| 亚洲香肠在线观看| 日本免费在线视频不卡一不卡二| 麻豆成人免费电影| 99re这里都是精品| 成人av资源网站| 欧美日本一区二区在线观看| 色哟哟在线观看一区二区三区| 国产精品污污网站在线观看| 亚洲同性同志一二三专区| 国产欧美日韩精品一区| 国产精品久久久久久亚洲毛片| 亚洲四区在线观看| 亚洲午夜私人影院| 精品一区二区三区在线观看| 国产成人午夜视频| 91小视频在线| 日韩丝袜美女视频| 欧美韩日一区二区三区四区| ...中文天堂在线一区| 偷拍与自拍一区| 国产成人精品一区二区三区四区| 91丝袜美腿高跟国产极品老师 | 成人午夜私人影院| 欧美三级电影网站| 精品不卡在线视频| 亚洲欧洲色图综合| 奇米四色…亚洲| 91美女片黄在线| 日韩一卡二卡三卡四卡| 国产精品久久久久桃色tv| 日韩精彩视频在线观看| 成人免费视频视频| 日韩一卡二卡三卡四卡| 成人免费视频在线观看| 美女网站在线免费欧美精品| www.av亚洲| 久久这里只精品最新地址| 亚洲在线成人精品| 成人av资源网站| 欧美成人a∨高清免费观看| 亚洲精品日韩专区silk| 精品亚洲免费视频| 欧美日韩精品系列| 亚洲欧美视频在线观看视频| 久久99精品久久久久久动态图| 91美女片黄在线观看| 国产亚洲精品久| 麻豆91在线播放免费| 色噜噜夜夜夜综合网| 亚洲国产高清不卡| 精品一区二区三区蜜桃| 欧美蜜桃一区二区三区| 亚洲视频你懂的| 麻豆精品视频在线观看视频| 欧美日韩国产首页| 国产精品三级av| 美腿丝袜在线亚洲一区| 欧美日韩五月天| 一区二区三区日韩| 99re热这里只有精品视频| 国产情人综合久久777777| 国产综合色视频| 精品国精品自拍自在线| 天天综合色天天| 欧美日韩在线亚洲一区蜜芽| 亚洲三级电影网站| 本田岬高潮一区二区三区| 久久久91精品国产一区二区精品 | 国产精品综合网| 日韩精品一区二区三区视频| 日本视频一区二区三区| 8x8x8国产精品| 婷婷夜色潮精品综合在线| 在线观看国产91| 午夜视频在线观看一区| 欧美在线小视频| 亚洲成人激情自拍| 欧美日韩久久一区| 图片区小说区国产精品视频| 在线播放视频一区| 日本不卡视频在线观看| 欧美大片在线观看一区| 黄色精品一二区| 欧美三级一区二区| 国产成人无遮挡在线视频| 日韩欧美在线不卡| 午夜精品一区二区三区三上悠亚| 精品视频色一区| 日本亚洲免费观看| 日韩一区二区麻豆国产| 狠狠色伊人亚洲综合成人| 久久精品亚洲麻豆av一区二区 | 欧美性受xxxx黑人xyx性爽| 亚洲一区二区三区四区在线观看| 欧美私人免费视频| 肉肉av福利一精品导航| 精品国产污污免费网站入口 | 福利视频网站一区二区三区| 国产精品无码永久免费888| 91美女在线观看| 三级影片在线观看欧美日韩一区二区| 欧美一区二区三区色| 国产一级精品在线| 中文字幕一区二区三区四区不卡| 91久久精品一区二区三| 日韩av在线发布| 国产精品久久久久久亚洲毛片| 欧洲精品一区二区三区在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产色产综合产在线视频| 99v久久综合狠狠综合久久|