⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cptest01.c

📁 Controller Area Network Programming Interface Environment Ver0.8。 CanPie版本0.8. CAN总线通讯编程接口源代码。
💻 C
字号:
/*****************************************************************************\*	CANpie																	                  **																			                     **	File			: cptest.c																      **	Description :                                                              **	Author		: Uwe Koppe                                                    **	e-mail		: koppe@microcontrol.net													**                                                                         		** - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - **                                                                         		**   This program 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 of the License, or     		**   (at your option) any later version.                                   		**                                                                         		** - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - **																										**  History                                                                    **  Vers.    Date        Comment                                         Aut.  **  -----    ----------  ---------------------------------------------   ----  **  0.1      12.02.1999  Initial version                                 UK    **  0.2      04.09.1999  Adaption to version 0.3 of the CANpie Doc.      UK    **																										*\*****************************************************************************/#include "cpcore.h"#include "cpconst.h"#include "cpfifo.h"#include "cpmsg.h"#include "cpuser.h"#include <stdio.h>		/*------------------------------------------------------------------------**	printMsgCAN()***/void printMsgCAN(CpStruct_CAN * msg){	_U08	cnt;   _U08	dlc;	//---	identifier -----------------------------	printf("ID=%04d "	, CpMsgGetExtId(msg) );	//--- DLC ------------------------------------	dlc = CpMsgGetDlc(msg);	printf("DLC=%01d ", dlc);	//---	data -----------------------------------	if(dlc) printf("DATA= ");	for (cnt = 0; cnt < dlc; cnt++) {		printf("%02X ", CpMsgGetData(msg, cnt) );	}	printf("\n");}/*------------------------------------------------------------------------**	printHDI()***/void printHDI(CpStruct_HDI * hdi){	printf("\n");	printf("--------------------------------------------------\n");	printf("# Hardware Description Interface                  \n");	printf("CANpie Version   : %d.%d  \n",	hdi->v_VersionMajor,														hdi->v_VersionMinor);			printf("Driver Name      : %s \n", hdi->v_DriverName);	printf("Version          : %s \n", hdi->v_VersionNumber);	printf("CAN Controller   : ");	switch(hdi->v_ControllerType) {	case CP_CC_82C200:		printf("Philips 82C200 \n");		break;	case CP_CC_SJA1000:		printf("Philips SJA1000 \n");		break;	case CP_CC_AN82527:		printf("Intel AN82527 \n");		break;	default:		printf("unknown \n");		break;	}	printf("Frame Type       : ");	switch( (hdi->v_SupportFlags) & 0x03) {	case 0:		printf("2.0 A\n");		break;	case 1:		printf("2.0 B passive\n");		break;	case 2:		printf("2.0 B\n");		break;   default:		printf("unknown\n");		break;	}	printf("FullCAN          : ");	if ( (hdi->v_SupportFlags) & 0x04 ) printf("yes\n");	else printf ("no\n");	printf("Interrupt-Handler: ");	if ( (hdi->v_SupportFlags) & 0x08 ) printf("yes\n");	else printf ("no\n");	printf("ID-Filter        : ");	if ( (hdi->v_SupportFlags) & 0x10 ) printf("yes\n");	else printf ("no\n");	printf("Message Timestamp: ");	if ( (hdi->v_SupportFlags) & 0x20 ) printf("yes\n");	else printf ("no\n");	printf("User Data Field  : ");	if ( (hdi->v_SupportFlags) & 0x40 ) printf("yes\n");	else printf ("no\n");}
_U08 MeineFunktion(CpStruct_CAN * msg){   printf("Jetzt sind wir in MeineFunktion()..\n");   return 33;}
/*------------------------------------------------------------------------**	main()***/int main(void){	_U08				status;	CpStruct_CAN	msg1, msg2, msg3, msg4;	CpStruct_CAN	fifoMsg;	CpStruct_HDI   myHdi;	//--- print startup message --------------------------------------		printf("--------------------------------------------------\n");	printf("+ Testprogram for CANpie                         +\n");	printf("+ CpTest 1                                       +\n");	printf("--------------------------------------------------\n");		//--- requesting Hardware Description Interface ------------------	CpCoreHDI(0, &myHdi);	printHDI(&myHdi);	//--- start the initialization routine ---------------------------	printf("\n");	printf("Initialize: CpUserAppInit() \n");	status =	CpUserAppInit(CP_CHANNEL_1, 6, 6, 10);	printf("Status: %d \n", status);   //--- callback function ------------------------------------------   CpUserIntFunctions(CP_CHANNEL_1, MeineFunktion, NULL, NULL);   //---	init the CAN message ---------------------------------------	msg1.v_MsgId 		= 100;	msg1.v_MsgFlags 	= 2;	msg1.v_MsgData[0] = 1;	msg1.v_MsgData[1] = 3;	msg2.v_MsgId 		= 200;	msg2.v_MsgFlags 	= 2;	msg2.v_MsgData[0] = 2;	msg2.v_MsgData[1] = 4;   msg3.v_MsgId 		= 300;	msg3.v_MsgFlags 	= 3;	msg3.v_MsgData[0] = 3;	msg3.v_MsgData[1] = 2;   msg3.v_MsgData[2] = 1;	msg4.v_MsgId 		= 440;	msg4.v_MsgFlags 	= 4;	msg4.v_MsgData[0] = 1;	msg4.v_MsgData[1] = 2;   msg4.v_MsgData[2] = 4;	msg4.v_MsgData[3] = 8;	//---	test fifo --------------------------------------------------	printf("\n");	printf("Push 8 messages to receive buffer...\n");	status = CpFifoPush(CP_CHANNEL_1, CP_FIFO_RCV, &msg1); 	status = CpFifoPush(CP_CHANNEL_1, CP_FIFO_RCV, &msg2);   status = CpFifoPush(CP_CHANNEL_1, CP_FIFO_RCV, &msg3);   status = CpFifoPush(CP_CHANNEL_1, CP_FIFO_RCV, &msg4);   status = CpFifoPush(CP_CHANNEL_1, CP_FIFO_RCV, &msg1); 	status = CpFifoPush(CP_CHANNEL_1, CP_FIFO_RCV, &msg2);   status = CpFifoPush(CP_CHANNEL_1, CP_FIFO_RCV, &msg3);   status = CpFifoPush(CP_CHANNEL_1, CP_FIFO_RCV, &msg4); 		CpUserFilterAll(CP_CHANNEL_1, 0);	//---	read message from buffer -----------------------------------	printf("Reading messages from buffer...\n");   do {	   status = CpUserMsgRead(CP_CHANNEL_1, &fifoMsg);	   printf("Status: %d \n", status);  	   printMsgCAN(&fifoMsg);   } while (status == CpErr_OK);	//--- remove the driver ------------------------------------------	printf("De-Initialize: CpUserAppDeInit() \n");	status =	CpUserAppDeInit(0);	printf("Status: %d \n", status);	return (0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -