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

📄 csddemo.c

📁 应用系统开发用户可以快速地把SBS CSD卡集成到基于VxWorks的应用环境
💻 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 + -