📄 csddemo.c
字号:
#include "vxworks.h"
#include "config.h"
#include "csdlib.h"
unsigned long can1addr=0xd000; can2addr=0xd400;
void pRcvFunc1()
{
CAN_RPACKET can_rpacket;
CSD_CanRcvMsg(1,&can_rpacket); /* Receive can message and display */
printf("\r\n");
printf("CAN1: ff:");
printf("%x",can_rpacket.ff);
printf(" id:");
printf("0x%x ",can_rpacket.id1);
printf("0x%x ",can_rpacket.id2);
printf("0x%x ",can_rpacket.id3);
printf("0x%x",can_rpacket.id4);
printf(" data(char format):");
printf("%02x-",can_rpacket.data[0]);
printf("%02x-",can_rpacket.data[1]);
printf("%02x-",can_rpacket.data[2]);
printf("%02x-",can_rpacket.data[3]);
printf("%02x-",can_rpacket.data[4]);
printf("%02x-",can_rpacket.data[5]);
printf("%02x-",can_rpacket.data[6]);
printf("%02x",can_rpacket.data[7]);
}
void pRcvFunc2()
{
CAN_RPACKET can_rpacket;
CSD_CanRcvMsg(2,&can_rpacket); /* Receive can message and display */
printf("\r\n");
printf("CAN2: ff:");
printf("%x",can_rpacket.ff);
printf(" id:");
printf("0x%x ",can_rpacket.id1);
printf("0x%x ",can_rpacket.id2);
printf("0x%x ",can_rpacket.id3);
printf("0x%x",can_rpacket.id4);
printf(" data(char format):");
printf("%02x-",can_rpacket.data[0]);
printf("%02x-",can_rpacket.data[1]);
printf("%02x-",can_rpacket.data[2]);
printf("%02x-",can_rpacket.data[3]);
printf("%02x-",can_rpacket.data[4]);
printf("%02x-",can_rpacket.data[5]);
printf("%02x-",can_rpacket.data[6]);
printf("%02x",can_rpacket.data[7]);
}
csdTask()
{
PORT_STRUCT ptrStruct;
CSD_Open(0x140);
CSD_CanConfig(can1addr,can2addr,11,7,1);
CSD_Install(1,can1addr);
CSD_Install(2,can2addr);
ptrStruct.filter=SINGLE;
ptrStruct.lis_on=LOFF;
ptrStruct.test=TOFF;
ptrStruct.sleep=SOFF;
ptrStruct.baud_rate=B1000;
ptrStruct.code1=0;
ptrStruct.code2=0;
ptrStruct.code3=0;
ptrStruct.code4=0;
ptrStruct.mask1=0xff;
ptrStruct.mask2=0xff;
ptrStruct.mask3=0xff;
ptrStruct.mask4=0xff;
CSD_CanConfigPort(1,ptrStruct); /* Can port configuration */
CSD_CanConfigPort(2,ptrStruct); /* Can port configuration */
CSD_CanEnableIntRcv(1); /* Can enable interrupt receive */
CSD_CanEnableIntRcv(2); /* Can enable interrupt receive */
CSD_InterCanRece(1,IRQ11,pRcvFunc1);
CSD_InterCanRece(2,IRQ7,pRcvFunc2);
printf("\r\ncan demo program");
printf("\r\nWaitting for receive data....");
}
csdmain()
{
taskSpawn("csdTask", 100, 0, 2000,(FUNCPTR) csdTask,0,0,0,0,0,0,0,0,0,0);
}
csdsend()
{
int t,num=0;
CAN_SPACKET can_packet;
char sCommand[256];
int ulTimes,ii;
printf("\r\nSpecify the send times [1-250]:");
gets(sCommand);
if( (1 !=sscanf(sCommand,"%d",&ulTimes)) || (ulTimes>250) )
{
printf("\r\nError input!");
printf("\r\nPress ENTER to continue....");
return;
}
for(num=0;num<ulTimes;num++)
{
can_packet.f_pattern = E;
can_packet.f_type = D;
can_packet.byte_len = EIGHT;
can_packet.id1 =0x10;
can_packet.id2 =0x20;
can_packet.id3 =0x30;
can_packet.id4 =0x40;
for(t=0;t<8;t++)
{
can_packet.data[t] = num;
}
if(CSD_CanSendMsg(1,can_packet) != 0)
{
printf(" Send Error!");
exit(0);
}
taskDelay(1);
if(CSD_CanSendMsg(2,can_packet) != 0)
{
printf(" Send Error!");
exit(0);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -