net_test.c

来自「这是周立功发布的LPC2200系列开发办中LPC2210这一款最新的所有板级测试」· C语言 代码 · 共 68 行

C
68
字号
#include  "config.h"

#define   NET_RST   		0X00000040
#define   NET_BASE_ADDR   	0X83400000

/****************************************************************************
* 名称:WriteToNet()
* 功能:把数据写入RTL8019AS
* 入口参数:	ADDR		写入地址
WRITEDATA   写入数据
* 出口参数:无
****************************************************************************/

void  WriteToNet(uint8 ADDR_16,uint16 WRITEDATA)
{
	
	(*((volatile unsigned short *) NET_BASE_ADDR+ADDR_16))=WRITEDATA;//0x83400000	 
	
}


/****************************************************************************
* 名称:ReadFromNet()
* 功能:从RTL8019AS把数据读出
* 入口参数:	ADDR		读出地址

  * 出口参数:	READDATA   	读出数据
****************************************************************************/
uint16  ReadFromNet(uint8 ADDR_16)
{
	uint16 temp;
	temp=(*((volatile unsigned short *) NET_BASE_ADDR+ADDR_16));//0x83400000
	return (temp);
}

// NET测试函数,返回1则正确,返回0则错误
uint8	NetTest(void)
{
uint8 i,j;
	IODIR=IODIR|NET_RST;
	IOCLR=NET_RST;
	for(i=0;i<200;i++)
	{
		for(j=0;j<200;j++);
	}
	IOSET=NET_RST;
	for(i=0;i<200;i++)
	{
		for(j=0;j<200;j++);
	}
	IOCLR=NET_RST;
	for(i=0;i<200;i++)
	{
		for(j=0;j<200;j++);
	}	
	WriteToNet(0x1f,0x00); 	
	for(i=0;i<200;i++)
	{
		for(j=0;j<200;j++);
	}
	WriteToNet(0x00,0x21);   //使芯片处于停止模式,这时进行寄存器设置
	i=ReadFromNet(0x0a);
	j=ReadFromNet(0x0b);
	if((i==0x50)&&(j==0x70))
		return 1;
	else
		return 0;
}

⌨️ 快捷键说明

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