📄 isacan.c
字号:
/* 该程序自检通过 刘林伟 2004/05/28 */
/* 波特率也通过测试,可以从50Kbps到1Mbps.推荐使用50kbps,lengh>>1km */
/* AD_1=0xF000 CONVST1=0x7000 */
#include "globle.c"
void SYSINIT();
void inline disable();
void inline enable();
void kickdog();
void DELAY(void);
void CAN_INIT();
void CAN_REC();
void ad_test();
void can_test();
void interrupt c_int5();
void ramtest();
void can_receive();
ioport unsigned port7000;
#define CONVST1 port7000
ioport unsigned portF000;
#define AD_1 portF000
unsigned int temp1,temp2,temp3,temp4;
unsigned int CAN_FLAG=0,DATA1,DATA2,DATA3,DATA4;
unsigned int flag1;
unsigned int result1,result2,result3,result4,result5,result6,result7,result8;
unsigned int data1[1600],i=0;
void main()
{
disable();
SYSINIT();
CAN_FLAG=0X00;
CAN_INIT();
enable();
// ramtest();
// can_receive();
for(;;)
{
// can_receive();
// can_test();
// ad_test();
// ramtest();
// IMR|=0x0010; /*open can 中断*/
// IFR=0x0FFFF; /*清除全部中断标志 */
}
}
/*系统初始化子程序*/
void SYSINIT()
{
asm(" SETC INTM");
asm(" CLRC SXM"); /*符号位扩展有效 */
asm(" CLRC OVM "); /*累加器结果正常溢出*/
asm(" CLRC CNF"); /*B0被配置为数据存储空间*/
SCSR1=0x83fe; /*CLKIN=20M,CLKOUT=40M*/
// SCSR2=0x0049;
WDCR=0x006F; /*不使能WDT*/
// WDCR=0x002F; /*使能WDT*/
MCRA&=0x00FF; /**SET PB PORT*/
PBDATDIR=0X0000;
IMR=0x0010; /*open can 中断*/
IFR=0x0FFFF; /*清除全部中断标志 */
}
/*屏蔽中断子程序*/
void inline disable()
{
asm(" setc INTM");
}
void inline enable()
{
asm(" clrc INTM");
}
void kickdog()
{
WDKEY=0x5555;
WDKEY=0xAAAA;
}
void ramtest()
{
unsigned int *ptr=0x0000 ;
unsigned int i=0,k1=0;
for(i=0;i<1000;i++)
{data1[i]=0x2211; }
for(i=1000;i<1500;i++)
{data1[i]=0x8866; }
ptr+=0xf000;
// *ptr=0x5678;
// *ptr=0x1234;
// *ptr=0x5555;
for(i=0;i<1500;i++)
{
temp1=data1[i];
k1=temp1&0x00ff;
*ptr=k1;
ptr++;
temp1>>=8;
k1=temp1&0x00ff;
*ptr=k1;
ptr++;
}
ptr=0x0000;
}
void DELAY(void)
{
unsigned int key;
for(key=0;key<0x0Cf;key++);
/* for(x=0;x<0x0Cf;x++);*/
}
void CAN_INIT()
{
MCRB=MCRB|0x0c0;/*IOPC6,IPOC7配置为特殊功能:CANRX,CANTX*/
/*CAN位定时器配置*/
CANIFR=0xFFFF;/*清全部CAN中断标志*/
/* CANLAM0H=0x7FFF;/*设置邮箱0的的屏蔽码*/
/* CANLAM0L=0xFFFF;/*全收*/
CANLAM1H=0x7FFF;/*设置邮箱2,3的的屏蔽码*/
CANLAM1L=0xFFFF; /*0则ID必须匹配*/
CANMCR=0x1040 ;/*CCR=1改变配置请求*/
while (!(CANGSR&0x0010));/*当CCE=1时即可配置BCR2、BCR1寄存器*/
//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -