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

📄 isacan.c

📁 tms320f2707 控制的 can程序 ISA接口方式 调试通过
💻 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 + -