📄 test.c
字号:
count_error = 0;
for(count_rdwr=0; count_rdwr<0x0400; count_rdwr++)
{
chipid = Hal4Sys_Read(0x03);
chipid = (chipid<<8)|Hal4Sys_Read(0x02);
if(chipid !=0x1302)
{
Hal4Sys_ResetPCBA();
printf("Chip ID=0x%04x ",chipid);
count_error++;
}
}
printf("Product ID error times=0x%04x\n",count_error++);
count_error = 0;
for(count_rdwr=0; count_rdwr<0x0400; count_rdwr++)
{
chipid = Hal4Sys_Read(0x15);
chipid = (chipid<<8)|Hal4Sys_Read(0x14);
if(chipid !=0x0100)
{
Hal4Sys_ResetPCBA();
printf("Ver ID=0x%04x ",chipid);
count_error++;
}
}
printf("Ver ID error times=0x%04x\n",count_error++);
reg_test(0x04,0x55,0xaa);
reg_test(0x12,0x54,0xaa);
reg_test(0x16,0x55,0xaa);
reg_test(0x18,0x55,0xa8);
reg_test(0x06,0x55,0xaa);
reg_test(0x0a,0x55,0xaa);
reg_test(0x0c,0x55,0xaa);
reg_test(0x0e,0x55,0xaa);
reg_test(0x1A,0x55,0xaa);
reg_test1(0x1C,0x55,0xaa);
reg_test1(0x1D,0x55,0xaa);
reg_test1(0x1E,0x55,0xaa);
reg_test1(0x1F,0x55,0xaa);
cprintf("Please select: ");
break;
case 'i':
case 'I':T_Main_Menu();
Latch_int(1);
Latch_int(2);
Latch_int(4);
Latch_int(8);
Latch_int(16);
Latch_int(32);
Latch_int(64);
Latch_int(128);
break;
case 's':
case 'S':T_Main_Menu();
printf("Pls input I2C clk delay= 0x");
ad1 = input();
printf("%01x", ad1);
ad2 = input();
printf("%01x\n", ad2);
speed = (ad1<<4)|ad2;
cprintf("Please select: ");
break;
default:T_Main_Menu();
break;
}
}
if(Hal4Sys_Get_Int())
fn_usb_isr();
}
}
void reg_test(UCHAR addr,UCHAR data,UCHAR data1)
{
count_error = 0;
Hal4Sys_Write(0xff, addr+1);
for(count_rdwr=0; count_rdwr<0x0a00; count_rdwr++)
{
Hal4Sys_Write(0xff, addr+1);
Hal4Sys_Write(data, addr);
chipid=Hal4Sys_Read(addr);
if(chipid !=data)
{
count_error++;
Hal4Sys_ResetPCBA();
}
Hal4Sys_Write(data, addr+1);
chipid=Hal4Sys_Read(addr);
if(chipid !=0)
count_error++;
Hal4Sys_Write(data1, addr);
chipid=Hal4Sys_Read(addr);
if(chipid !=data1)
count_error++;
Hal4Sys_Write(data1, addr+1);
chipid=Hal4Sys_Read(addr);
if(chipid !=0)
{
count_error++;
Hal4Sys_ResetPCBA();
}
}
printf("set reg 0x%02x",addr);
printf(" clear reg 0x%02x ",addr+1);
if(count_error)
printf(" error times=0x%04x\n",count_error);
else
{
textattr(0x02);
printf(" PASS\n");
textattr(0x03);
}
}
void reg_test1(UCHAR addr,UCHAR data,UCHAR data1)
{
count_error = 0;
Hal4Sys_Write(0x00, addr);
for(count_rdwr=0; count_rdwr<0x0a00; count_rdwr++)
{
Hal4Sys_Write(0x00, addr);
Hal4Sys_Write(data, addr);
chipid=Hal4Sys_Read(addr);
if(chipid !=data)
{
count_error++;
Hal4Sys_ResetPCBA();
}
Hal4Sys_Write(00, addr);
chipid=Hal4Sys_Read(addr);
if(chipid !=0)
count_error++;
Hal4Sys_Write(data1, addr);
chipid=Hal4Sys_Read(addr);
if(chipid !=data1)
count_error++;
Hal4Sys_Write(00, addr);
chipid=Hal4Sys_Read(addr);
if(chipid !=0)
{
count_error++;
Hal4Sys_ResetPCBA();
}
}
printf("set reg 0x%02x",addr);
printf(" clear reg 0x%02x ",addr);
if(count_error)
printf(" error times=0x%04x\n",count_error);
else
{
textattr(0x02);
printf(" PASS\n");
textattr(0x03);
}
}
UCHAR input(void)
{
UCHAR temp, key;
do{
key = 0;
if( bioskey(1) )
{
key = bioskey(0);
key &= 0xff;
switch(key)
{
case '0':
temp = 0;
break;
case '1':
temp = 1;
break;
case '2':
temp = 2;
break;
case '3':
temp = 3;
break;
case '4':
temp = 4;
break;
case '5':
temp = 5;
break;
case '6':
temp = 6;
break;
case '7':
temp = 7;
break;
case '8':
temp = 8;
break;
case '9':
temp = 9;
break;
case 'a':
temp = 10;
break;
case 'b':
temp = 11;
break;
case 'c':
temp = 12;
break;
case 'd':
temp = 13;
break;
case 'e':
temp = 14;
break;
case 'f':
temp = 15;
break;
default:
break;
}
}
}while(!key);
return temp;
}
void Latch_int(UCHAR int_bit)
{
Hal4Sys_Write(0xFF, CLR_INT_LATCH);
if(Hal4Sys_Get_Int())
printf("int latch initial fail\n");
else
printf("int latch initial ok\n");
Hal4Sys_Write(int_bit, SET_INT_LATCH);
if(Hal4Sys_Get_Int())
printf("Vbus_det_int interrupt pass\n");
else
printf("Vbus_det_int interrupt fail\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -