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

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

?? can_test.c

?? LPC2294 測試程序 YL_LPC229X_Test_Data的目錄說明
?? C
字號:
/**************************************************************************
MODULE:    Main for LPC_CANAll
CONTAINS:  CAN Example using the LPC_CANAll Driver
		   Tested with MCB2100 board from Keil Software
DOES:      
COPYRIGHT: Embedded Systems Academy, Inc. 2004.
LICENSE:   THIS VERSION CREATED FOR FREE DISTRIBUTION
			   FOR PHILIPS SEMICONDUCTORS www.philipsmcu.com
		   FOR KEIL SOFTWARE www.keil.com
VERSION:   1.00, Pf 14-JUL-04, First published release
---------------------------------------------------------------------------
HISTORY:   1.00, Pf 14-JUL-04, First published release
***************************************************************************/ 

#include "board.h"
#include "utils.h"
#include "LPC2294.h"
#include "LPC_CANAll.h"

// This value defines the number of timer ticks (of 100 microcseconds)
// that the program waits before sending the next CAN message. Here: 100ms
#define SLOWDOWN 1000


// Interrupt Service Routines
void DefaultISR( void ); 
void Timer0ISR( void ); 


// Global Timer Tick
unsigned int volatile gTimerTick;


/**************************************************************************
DOES:    Default Service Routine for interrupts
GLOBALS: none
RETURNS: never
***************************************************************************/ 
void DefaultISR( void )
{
	while ( 1 )
	{
		// We should never get here, if we do it is an error
	}
}


/**************************************************************************
DOES:    Timer 0 Interrupt Service Routine
GLOBALS: Increment timer tick
RETURNS: never
***************************************************************************/ 
void Timer0ISR( void )
{
	gTimerTick++;
	T0IR = 1; // Clear interrupt flag
	VICVectAddr = 0xFFFFFFFF; // Acknowledge Interrupt
}


/**************************************************************************
DOES:    Checks if a timestamp expired
GLOBALS: none
RETURNS: one if it expired, else zero
***************************************************************************/ 
short IsTimeExpired( unsigned int timestamp )
{
	unsigned int time_now;

	time_now = gTimerTick;
	if ( time_now > timestamp )
	{
		if ( ( time_now - timestamp ) < 0x80000000L )
			return 1;
		else
			return 0;
	}
	else
	{
		if ( ( timestamp - time_now ) > 0x80000000L )
			return 1;
		else
			return 0;
	}
}


/**************************************************************************
DOES:    Waits until a timeout expires. Actual time waited is in the range
		 from [0 to 100us*(delay-1)] to [0 to 100us*delay]
GLOBALS: none
RETURNS: nothing
***************************************************************************/ 
void SlowDown( unsigned int delay )// Number of 100us timeouts used for waiting
{
	delay += gTimerTick;
	while ( !IsTimeExpired( delay ) ) ;

	#if( CAN_DEBUG )
		printf( "CAN Slow Down!\n" ) ;
	#endif
}


/**************************************************************************
DOES:    Main routine of demo program:
		 1.) Initialization
		 2.) Send a single CAN message
		 3.) Wait for CAN message,
			 send response to received messages
GLOBALS: none
RETURNS: never
***************************************************************************/ 
void Can_Test(void)
{
	CANALL_MSG MsgBuf_TX1, MsgBuf_TX2 ; // TX Buffers for CAN message
	CANALL_MSG MsgBuf_RX1, MsgBuf_RX2 ; // RX Buffers for CAN message

	// Initialize MsgBuf
	MsgBuf_TX1.Frame = 0x80080000L; // 29-bit, no RTR, DLC is 8 bytes
	MsgBuf_TX1.MsgID = 0x00012345L; // CAN ID
	MsgBuf_TX1.DatA = 0x5a5a5a5aL; // all zeros
	MsgBuf_TX1.DatB = 0xa5a5a5a5L; // all zeros

	// Initialize MsgBuf
	MsgBuf_TX2.Frame = 0x80080000L; // 29-bit, no RTR, DLC is 8 bytes
	MsgBuf_TX2.MsgID = 0x00098765L; // CAN ID
	MsgBuf_TX2.DatA = 0xc3c3c3c3L; // all zeros
	MsgBuf_TX2.DatB = 0x3c3c3c3cL; // all zeros

	printf( "CAN Bus Test \n" ) ;

	// Init Vector Interrupt Controller
	VICIntEnClr = 0xFFFFFFFFL; // Disable all Ints
	VICIntSelect = 0x00000000L;

	// Install Default IRQVec
	VICDefVectAddr = ( unsigned long ) DefaultISR; // set interrupt vector

	// Initialisation of CAN interfaces
	// CAN interface 1, use IRQVec0, at 125kbit
	CANAll_Init( 1 , 0 , CANBitrate125k_12MHz ); 

	// CAN interface 2, use IRQVec1, at 125kbit
	CANAll_Init( 2 , 1 , CANBitrate125k_12MHz ); 

	// Set CAN Err ISR to IRQVec2
	CANAll_SetErrIRQ( 2 );

	Delay( 100 );

	printf( "Press 'ESC' key to exit the test \n" ) ;

	while ( getkey() != ESC_KEY )
	{
		// Transmit initial message on CAN 1
		CANAll_PushMessage( 1 , &MsgBuf_TX1 );

		// Check if message received on CAN 2
		if ( CANAll_PullMessage( 2 , &MsgBuf_RX2 ) )
		{
			printf( "\tCAN 2 Receive   ID = 0x%x\n", MsgBuf_RX2.MsgID ) ;
			printf( "\tCAN 2 Receive DATA = 0x%x\n", MsgBuf_RX2.DatA ) ;
			printf( "\tCAN 2 Receive DATB = 0x%x\n", MsgBuf_RX2.DatB ) ;
		} // Message on CAN 2 received
		
		// Transmit initial message on CAN 2
		CANAll_PushMessage( 2 , &MsgBuf_TX2 );

		// Check if message received on CAN 1
		if ( CANAll_PullMessage( 1 , &MsgBuf_RX1 ) )
		{
			printf( "\tCAN 1 Receive   ID = 0x%x\n", MsgBuf_RX1.MsgID ) ;
			printf( "\tCAN 1 Receive DATA = 0x%x\n", MsgBuf_RX1.DatA ) ;
			printf( "\tCAN 1 Receive DATB = 0x%x\n", MsgBuf_RX1.DatB ) ;
		} // Message on CAN 1 received

		Delay( 100 );

	} // while(1)

//	return TRUE ;
}

/*----------------------- END OF FILE ----------------------------------*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费久久精品视频| a美女胸又www黄视频久久| 亚洲一区二区精品久久av| 国产精品嫩草99a| 精品国产自在久精品国产| 欧美一区二区网站| 欧美老女人在线| 8x福利精品第一导航| 欧美日韩激情一区| 91精品免费观看| 这里只有精品视频在线观看| 欧美一区二区三区在线| 欧美一区二区网站| 欧美精品一区二区高清在线观看 | 在线综合亚洲欧美在线视频 | 亚洲自拍偷拍图区| 亚洲一区二区三区四区在线| 亚洲成人精品一区| 日韩不卡在线观看日韩不卡视频| 午夜欧美在线一二页| 免费黄网站欧美| 久久国产麻豆精品| 国产suv精品一区二区883| 成人午夜在线免费| 91精彩视频在线观看| 欧美做爰猛烈大尺度电影无法无天| 欧美午夜理伦三级在线观看| 69p69国产精品| 欧美精品一区二区三区四区| 国产精品久久网站| 一区二区三区美女视频| 丝袜诱惑制服诱惑色一区在线观看 | 成人黄色777网| 在线看国产日韩| 欧美一区二区免费| 国产欧美日韩在线| 亚洲一卡二卡三卡四卡无卡久久| 日韩av高清在线观看| 国产老妇另类xxxxx| 91小视频免费观看| 欧美一区二区性放荡片| 国产日韩v精品一区二区| 亚洲欧美国产三级| 美国三级日本三级久久99| 国产成人精品网址| 精品视频一区二区不卡| 26uuu国产一区二区三区| 一区精品在线播放| 日韩在线播放一区二区| 国产丶欧美丶日本不卡视频| 色吊一区二区三区| 欧美成人官网二区| 亚洲激情自拍偷拍| 国产真实乱子伦精品视频| 91偷拍与自偷拍精品| 日韩一区二区影院| 中文字幕在线观看不卡| 蜜乳av一区二区三区| av亚洲产国偷v产偷v自拍| 正在播放亚洲一区| 亚洲男人天堂av| 国产一区二区三区在线看麻豆| 91久久一区二区| 久久久久久久免费视频了| 亚洲国产一区二区三区| 国产白丝精品91爽爽久久| 欧美一区二区三区男人的天堂| 国产精品高潮久久久久无| 久久精品国产亚洲5555| 91国偷自产一区二区三区成为亚洲经典| 欧美草草影院在线视频| 亚洲一区在线观看视频| 国产91富婆露脸刺激对白| 欧美精品三级在线观看| 亚洲免费在线视频一区 二区| 狠狠色综合色综合网络| 欧美日韩国产欧美日美国产精品| 国产精品大尺度| 久久成人久久鬼色| 在线不卡一区二区| 一区二区三区中文字幕精品精品| 国产成人在线色| 日韩欧美国产一区在线观看| 亚洲小说欧美激情另类| 91欧美一区二区| 国产精品久久久久国产精品日日 | 91精品国产综合久久久蜜臀粉嫩| 亚洲三级小视频| 成人午夜激情影院| 国产人伦精品一区二区| 久久成人精品无人区| 日韩一区二区三| 天天综合网天天综合色| 欧美亚洲国产一区在线观看网站| 国产精品国产三级国产a| 成人一区二区三区视频| 久久久久99精品一区| 狠狠色丁香婷婷综合久久片| 欧美一二三区在线| 日韩成人免费看| 欧美一区二区三区视频在线观看| 亚洲成av人片| 欧美日韩在线不卡| 亚洲国产欧美另类丝袜| 精品视频在线免费观看| 亚洲一级二级三级| 欧美丝袜第三区| 亚洲一区二区三区美女| 欧洲日韩一区二区三区| 一区av在线播放| 在线观看欧美精品| 亚洲一二三区视频在线观看| 欧美裸体bbwbbwbbw| 水蜜桃久久夜色精品一区的特点| 欧美三级三级三级爽爽爽| 亚洲成人激情自拍| 日韩三级视频中文字幕| 国内精品伊人久久久久影院对白| 精品国产免费久久 | 51精品秘密在线观看| 日韩成人一区二区三区在线观看| 欧美一区二区三区小说| 国产一区二区毛片| 中文字幕 久热精品 视频在线 | 欧美精品一区二区三区在线播放| 国产成人午夜高潮毛片| 中文字幕在线不卡一区二区三区| 色婷婷综合久久久久中文一区二区| 亚洲最大成人综合| 91精品国产综合久久久蜜臀粉嫩| 久久91精品国产91久久小草| 2021中文字幕一区亚洲| 成人午夜视频福利| 亚洲伊人色欲综合网| 日韩你懂的电影在线观看| 国产中文一区二区三区| 最新中文字幕一区二区三区| 欧美视频一区二区三区| 精品综合免费视频观看| 中文字幕乱码日本亚洲一区二区 | 欧美群妇大交群中文字幕| 久久精品久久综合| 国产精品丝袜一区| 欧美日韩精品电影| 国产成人亚洲综合a∨婷婷 | 国产成人一区二区精品非洲| 一区二区三区在线不卡| 日韩欧美三级在线| zzijzzij亚洲日本少妇熟睡| 五月天久久比比资源色| 久久久91精品国产一区二区三区| 一本一道波多野结衣一区二区| 日韩高清在线一区| 国产精品伦一区二区三级视频| 欧美日韩亚洲综合一区| 国产福利电影一区二区三区| 亚洲一区二区视频| 日本一区二区视频在线| 欧美日韩大陆一区二区| 国产69精品一区二区亚洲孕妇| 五月天一区二区三区| 国产精品高潮久久久久无| 制服丝袜在线91| 色综合久久66| 国产精品亚洲综合一区在线观看| 亚洲精品欧美激情| 久久网这里都是精品| 欧美日韩国产成人在线免费| 丁香婷婷综合五月| 蜜臀av一级做a爰片久久| 亚洲女人****多毛耸耸8| 国产亚洲综合色| 欧美丰满少妇xxxbbb| 91丨九色丨黑人外教| 精品一二三四在线| 丝袜国产日韩另类美女| 亚洲精品一二三| 中文字幕免费观看一区| 精品处破学生在线二十三| 欧美日韩在线电影| 色婷婷国产精品久久包臀 | 国产女人18毛片水真多成人如厕| 4hu四虎永久在线影院成人| 91视频国产资源| 丁香一区二区三区| 国产在线精品免费| 美国十次了思思久久精品导航| 亚洲成人免费观看| 亚洲国产视频一区| 亚洲六月丁香色婷婷综合久久| 国产欧美一区二区三区在线老狼| 日韩欧美国产电影| 91精品在线观看入口| 欧美久久久一区| 欧美私模裸体表演在线观看| 色婷婷亚洲一区二区三区| 成人性生交大合| jizzjizzjizz欧美| 成人18视频日本| www.综合网.com|