📄 demo_20a.c
字号:
#include <stdio.h>
#include <conio.h>
#include "can841.h"
#include "can841.c"
/* POLLING */
#define CAN1_IRQ 5 /*12*/
#define CAN2_IRQ 7 /*15*/
#define PORT1 0
#define PORT2 1
#define FAILURE 0
#define SUCCESS 1
#define REMOTE_ACC_CODE 0
typedef enum{FALSE, TRUE} BOOL;
void main(void)
{
UI gSegment = 0xDA00;
CAN_STRUCT can1, can2;
MSG_STRUCT smsg,rmsg;
UI i;
char c;
BYTE IsEmpty=1;
BYTE getdata = 0;
int nLocalAcpCode;
unsigned long ulCount = 0;
printf("Local Acp Code : ");
scanf("%d", &nLocalAcpCode);
if (canInitHW(gSegment, CAN1_IRQ, CAN2_IRQ) == FAILURE)
{
printf("Hardware initial is error.\n");
return;
}
if( canReset(PORT1) == FAILURE)
{
printf("Reset port 1 is error.\n");
return;
}
if (canReset(PORT2) == FAILURE)
{
printf("Reset port 2 is error.\n");
return;
}
can1.acc_code = nLocalAcpCode;
can1.acc_mask = 0xff;
can1.bt0 = 0x03;
can1.bt1 = 0x1c;
can2.acc_code = nLocalAcpCode;
can2.acc_mask = 0xff;
can2.bt0 = 0x03;
can2.bt1 = 0x1c;
if (canConfig(PORT1, can1) == FAILURE)
{
printf("Can controller port 1 configure is error.\n");
return;
}
delay(800);
if(canConfig(PORT2, can2) == FAILURE)
{
printf("Can controller port 2 configure is error.\n");
return;
}
delay(800);
if(canNormalRun(PORT1) == FAILURE)
{
printf("Can controller port 1 setnormal is error.\n");
}
if (canNormalRun(PORT2) == FAILURE)
{
printf("Can controller port 2 setnormal is error.\n");
return;
}
rmsg.id = 0x15;
rmsg.dlen=8;
for(i=0; i<8;i++)
rmsg.data[i]=i+1;
/* printf("Good!");*/
ulCount=0;
while(1)
{
if (kbhit())
{
c = getch();
if (c == 'q')
{
break;
}
}
if(canSendMsg(PORT2,rmsg)==SUCCESS)
/* printf("Good");*/
do
{
if (canReceiveMsg(PORT1, &smsg,&IsEmpty) == SUCCESS)
{
++ulCount;
getdata =1;
}
else
{
getdata = 0;
break;
}
}while(IsEmpty == 0 );
if(getdata)
printf("Count = %lu,msg->id =%d,msg->len=%d,data=%x,%x,%x,%x,%x,%x,%x,%x\n",
ulCount,smsg.id,smsg.dlen,
smsg.data[0],smsg.data[1],
smsg.data[2],smsg.data[3],
smsg.data[4],smsg.data[5],
smsg.data[6],smsg.data[7]);
}
if(canReset(PORT1) == FAILURE)
{
printf("Reset port 1 is error.\n");
}
if (canReset(PORT2) == FAILURE)
{
printf("Reset port 2 is error.\n");
}
if (canExitHW() == FAILURE)
{
printf("Exit hardware is error.\n");
}
printf("Program exit!\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -