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

📄 ad.c

📁 瑞泰TMS320VC33目标板的串口通讯测试程序
💻 C
字号:
#define TIM_CTL     	*(int *)0x808020 /* Timer 0 Global Control */
#define TIM_CNT     	*(int *)0x808024 /* Timer 0 Counter */
#define TIM_PRD	    	*(int *)0x808028 /* Timer 0 Period Register */

#define TIM_CTL_VALUE   0x601 /* TCLK as a timer pin; use internal clock source */
#define TIM_PRD_VALUE   1000  /* 60Mhz/sample frequency */    
#define TIM_START       0xc0   

#define AD_CS_ADDR      *(int *)0xf00000 /* A/D base address */
#define AD_RS_ADDR      *(int *)0xf00001 /*	AD reset   */
#define FIFO_RS_ADDR    *(int *)0xf00002 /*	FIFO reset */   
/* FIFO mode; 1: Channel A; 2: Channel B; 4: Channel C */   
#define Latch_Data      *(int *)0xb00007 

#define VC33RAM3        *(int *)0X803FFF /* 0x804000~0x8097ff 16k words internal */	
#define VECS_EXINT0	    *(int *)0x809fc1 /* external INT0 address */

extern cregister unsigned int IE,IF,ST,IOF;
interrupt void c_int99(void);

int buffer[1024]; /* 1024 : IDT7202 FIFO depth */
int buf1[1024]; 
int buf2[1024];
int buf3[1024]; 
int buf4[1024];
int buf5[1024]; 
int buf6[1024];
int i,j,temp,x,k,y,z,l,h;

main()
{
	
	ST = 0x00; /* GIE = 0 */
    IE = 0x01; /* Int0 enable */
	IF = 0x00;  
	
	TIM_CTL = TIM_CTL_VALUE;
	TIM_CNT = 0;
	TIM_PRD = TIM_PRD_VALUE;
	TIM_CTL = TIM_CTL_VALUE | TIM_START; /* Tmier 0 resets and starts */  
	
	IOF = 0x22; 		 /* XFx:output pin and XFx=0 */
	for(i=0; i<10; i++); /* delay */
	Latch_Data = 1;
	IOF=0x66;   		 /* XFx:output pin and XFx=0 */
	for(i=0; i<10; i++); /* delay */ 
	
	FIFO_RS_ADDR = 0;
	AD_RS_ADDR = 0;
	for(i=0; i<1024; i++)
	{
		buffer[i] = 0;
		buf1[i]   = 0; 
	}   
     
	VECS_EXINT0 = 0x60000000|(unsigned)c_int99; 
        
    j  = 0;
    i  = 0;    
    x = k = y = z = l = h = 0;
    ST = 0x2000; /* GIE = 1 */
    
    for(;;)
    {
    	/*
    	buffer[j] = AD_CS_ADDR; 
        buffer[j] = buffer[j]<<16;
        buffer[j] = buffer[j]>>16;   
        j++;
        j = j%1024;
        
        AD_CS_ADDR = 0xaa;  
     	for(i=0; i<100; i++);
    	Sram_ADDR = 0x1111;
       	for(i=0; i<100; i++);
      	temp = AD_CS_ADDR;
       	for(i=0; i<100; i++);
       	*/              
    }    
}

interrupt void c_int99(void)
{
	temp = 511; /* why temp = 511 ? */
    do
    {            
    	/* temp = IOF&0x80; */
        buffer[j] = AD_CS_ADDR; 
        buffer[j] = buffer[j]<<16;
        buffer[j] = buffer[j]>>16;  
        if((i = buffer[j]&0xf000) == 0x8000) /* D15 =1, data valid; A0 selected */
        {
        	buf1[x] = buffer[j]&0x0fff;
            x++;
            x = x%1024 ;   
        }   
        if((i = buffer[j]&0xf000) == 0x9000) /* D15 =1, data valid; A1 selected */
        {
         	buf2[y] = buffer[j]&0x0fff;
            y++;
            y = y%1024;   
        }   
        if((i = buffer[j]&0xf000) == 0xa000) /* D15 =1, data valid; B0 selected */
        {
        	buf3[k] = buffer[j]&0x0fff;
            k++;
            k = k%1024;   
        } 
        if((i = buffer[j]&0xf000) == 0xb000) /* D15 =1, data valid; B1 selected */
        {
        	buf4[l] = buffer[j]&0x0fff;
            l++;
            l = l%1024;   
        }   
        if((i = buffer[j]&0xf000) == 0xc000) /* D15 =1, data valid; C0 selected */
        {
        	buf5[h] = buffer[j]&0x0fff;
            h++;
            h = h%1024;   
        }   
        if((i = buffer[j]&0xf000) == 0xd000) /* D15 =1, data valid; C1 selected */
        {
            buf6[z] = buffer[j]&0x0fff;
            z++;
            z = z%1024;   
        }     
        
        j++; 
        j = j%1024; 
      
	}while(temp--);
    temp = 0; /* is it necessary? */       
}                                            


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -