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

📄 test.c

📁 在大型通信系统(机架插板式)中多块单板通过TDM总线
💻 C
字号:
/********************************************************************************/
/*                                                                              */
/*  描述: 复用解复用板(V2.0)控制器程序                                          */
/*  VER:  2.0                                                                   */
/*  REV:  1.0                                                                   */
/*  作者: 胡丙龙                                                                */
/*  时间: 2002年05月31日                                                        */
/*                                                                              */
/********************************************************************************/
#pragma  debug code small optimize(5) objectextend 

#include "reg52.h"
#include "mdb.h"
#include "hpi.h"
#include "hdlc.h"
#include "constant.h"
#include "sab82525.h"

/* 函数声明 */
void TestSRAM(void);                   
void TestSAB82525(void);                   

/* 变量定义 */
uchar bdata m_ucTestFlag;      
sbit m_bSRAMTestFlag     = m_ucTestFlag^0;  /* 定义RAM测试结果标志              */
sbit m_bSAB82525TestFlag = m_ucTestFlag^1;  /* 定义SAB825255测试结果标志        */

/* 外部变量 */
extern uchar xdata *SAB82525;       /* 定义SAB82525芯片译码地址                 */
extern uchar xdata *SRAM;           /* 定义外部数据RAM芯片译码地址              */      /*(基地址)  */

/********************************************************************************/
/*  函数名称:void TestSRAM(void)                                                */
/*  简要描述:测试片外SRAM函数                                                   */
/*                                                                              */
/*  时    间:2002年02月21日                                                     */
/********************************************************************************/
void TestSRAM(void)                   
{     
    unsigned char data i,j;
    unsigned char data a,b[4],c;

    /* 标志清零 */
    a = 0;

    /* 读写测试10次    */
    for(j=0;j<10;j++)
    {
        WATCHDOG = ~WATCHDOG;

        for(i=0;i<250;i++)
        {
			c = i+j;
			
	        /* 写数据   */
            *(SRAM+i) = c;
            *(SRAM+0x100+i) = c;
            *(SRAM+0x200+i) = c;
            *(SRAM+0x300+i) = c;

	        /* 读数据并比较 */
            b[0] = *(SRAM+i);
            b[1] = *(SRAM+0x100+i);
            b[2] = *(SRAM+0x200+i);
            b[3] = *(SRAM+0x300+i);
			
            if( (b[0]!=c) ||
                (b[1]!=c) ||
				(b[2]!=c) ||
				(b[3]!=c) )				
            {
                a = 1;
            }           
        }

        /* 根据结果置标志 */
        if(a==1)
        {
//            ALARM_LED = ON;
            m_bSRAMTestFlag = WRONG;
        }
        else
        {
            m_bSRAMTestFlag = RIGHT;
        }
    }
    
    return;
}


/********************************************************************************/
/*  函数名称:void TestSAB82525(void)                                            */
/*  简要描述:测试SAB82525读写函数                                               */
/*                                                                              */
/*  时    间:2002年02月21日                                                     */
/********************************************************************************/
void TestSAB82525(void)                   
{     
    unsigned char data i,j;
    unsigned char data a,b[8];

    /* 标志清零 */
    a = 0;

    /* 读写测试250次    */
    for(i=0;i<250;i++)
    {
        WATCHDOG = ~WATCHDOG;

        *(SAB82525+0x22) = i;
        *(SAB82525+0x23) = i;
        *(SAB82525+0x2c) = i;
//        *(SAB82525+0x2f) = i;
        *(SAB82525+0x62) = i;
        *(SAB82525+0x63) = i;
        *(SAB82525+0x6c) = i;
//        *(SAB82525+0x6f) = i;

        b[0] = *(SAB82525+0x22);
        b[1] = *(SAB82525+0x23);
        b[2] = *(SAB82525+0x2c);
        b[3] = i;
//        b[3] = *(SAB82525+0x2f);
        b[4] = *(SAB82525+0x62);
        b[5] = *(SAB82525+0x63);
        b[6] = *(SAB82525+0x6c);
        b[7] = i;
//        b[7] = *(SAB82525+0x6f);
        
        for(j=0;j<8;j++)
        {       
            if (b[j] != i)
            {
                a = 1;
            }           
        }

        /* 根据结果置标志 */
        if(a==1)
        {
//            ALARM_LED = ON;
            m_bSAB82525TestFlag = WRONG;
        }
        else
        {
            m_bSAB82525TestFlag = RIGHT;
        }
    }
    
    return;
}

⌨️ 快捷键说明

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