📄 test.c
字号:
unsigned char a,b;
a=(study[i2*16+i]&0xff00)>>8;
b=study[i2*16+i]&0xff;
write_buff[i*2]=a;
write_buff[i*2+1]=b;
}
PageWrite(i2*32);
}
}
void study_check(void)
{
unsigned char i,i1;
unsigned int i3;
send_result(0,0);//清电脑上一次的结果
open_count=0;
short_count=0;
i1=0;
for(i=0;i<=10;i++)
pin_power_wrong[i]=0;
for(i=1;i<=max_pin;i++)
{
if(i==1) init_adc_b();
if(i==17) init_adc();
low_select(i);//当前测脚拉高,其它脚拉低
analog_switch_select(i); //模拟开关选择
for(i3=0;i3<3000;i3++);
start_ad();//起动AD转换
while(ad_count==0); //等待数据采集完毕
ad_count=0;//采集标志置零,为下一次采集作准备
check_result=checkb(i);
if(check_result==1)
{
unsigned char flag=0;
int ok;
for(ok=0;ok<40;ok++)
{
if(open[ok]==i) flag=1;
}
for(ok=0;ok<40;ok++)
{
if(Short[ok]==i) flag=1;
}
if(flag==0)
{
pin_power_wrong[i1]=i;
if(i1<=10) i1++;
}
}
}
i1=0;
for(i=0;i<40;i++)
{
if(open[i]!=0)
{
open[i1]=open[i];
if(i==i1)
{
}
else
{
open[i]=0;
}
i1++;
}
}
}
void find_short_test(void)
{
unsigned char i,i1,i2,i3,group=0,ad_result;
i3=i3;
for(i=0;i<10;i++)
{
Short_grup1[i]=0;
Short_grup2[i]=0;
Short_grup3[i]=0;
Short_grup4[i]=0;
Short_grup5[i]=0;
Short_grup6[i]=0;
Short_grup7[i]=0;
Short_grup8[i]=0;
Short_grup9[i]=0;
Short_grup10[i]=0;
}
for(i=0;i<32;i++)
{
if(pin_power_wrong[i]==0)
{
i=50;
}
else
{
group++;
i2=0;
ad_select_send(pin_power_wrong[i]);
for(i1=0;i1<max_pin;i1++)
{
unsigned int i3;
// if((i1+1)!=pin_power_wrong[i])
// {
cmod_595_single_lower_inv(i1+1);
// high_select(i1+1);
for(i3=0;i3<200;i3++);
start_ad();//起动AD转换
while(ad_count==0); //等待数据采集完毕
ad_count=0;//采集标志置零,为下一次采集作准备
ad_result=check(1);
if(ad_result==1)
{
switch(group)
{
case 1 :
Short_grup1[i2++]=i1+1;
break;
case 2 :
Short_grup2[i2++]=i1+1;
break;
case 3 :
Short_grup3[i2++]=i1+1;
break;
case 4 :
Short_grup4[i2++]=i1+1;
break;
case 5 :
Short_grup5[i2++]=i1+1;
break;
case 6 :
Short_grup6[i2++]=i1+1;
break;
case 7 :
Short_grup7[i2++]=i1+1;
break;
case 8 :
Short_grup8[i2++]=i1+1;
break;
case 9 :
Short_grup9[i2++]=i1+1;
break;
case 10 :
Short_grup10[i2++]=i1+1;
break;
default: break;
}
for(i3=0;i3<36;i3++)
{
if(pin_power_wrong[i3]==i1+1) pin_power_wrong[i3]=0;
}
}
// }
}
}
}
i3=0;
for(i=1;i<=32;i++)
{
if(pin_power_wrong[i-1]==0)
{
}
else
{
if(i3==(i-1))
{
i3++;
}
else
{
pin_power_wrong[i3]=pin_power_wrong[i-1];
pin_power_wrong[i-1]=0;
i3++;
}
}
}
i2=0;
for(i1=0;i1<32;i1++)
{
if(pin_power_wrong[i1]==0)
{
i1=50;
}
else
{
i2++;
}
}
if(Short_grup1[1]==0)
{
pin_power_wrong[i2++]=Short_grup1[0];
Short_grup1[0]=0;
}
if(Short_grup2[1]==0)
{
pin_power_wrong[i2++]=Short_grup2[0];
Short_grup2[0]=0;
}
if(Short_grup3[1]==0)
{
pin_power_wrong[i2++]=Short_grup3[0];
Short_grup3[0]=0;
}
if(Short_grup4[1]==0)
{
pin_power_wrong[i2++]=Short_grup4[0];
Short_grup4[0]=0;
}
if(Short_grup5[1]==0)
{
pin_power_wrong[i2++]=Short_grup5[0];
Short_grup5[0]=0;
}
/************************/
if(Short_grup6[1]==0)
{
pin_power_wrong[i2++]=Short_grup6[0];
Short_grup6[0]=0;
}
if(Short_grup7[1]==0)
{
pin_power_wrong[i2++]=Short_grup7[0];
Short_grup7[0]=0;
}
if(Short_grup8[1]==0)
{
pin_power_wrong[i2++]=Short_grup8[0];
Short_grup8[0]=0;
}
if(Short_grup9[1]==0)
{
pin_power_wrong[i2++]=Short_grup9[0];
Short_grup9[0]=0;
}
if(Short_grup10[1]==0)
{
pin_power_wrong[i2++]=Short_grup10[0];
Short_grup10[0]=0;
}
cmod_595_single_lower(0);
}
void check_power_pin(void)
{
unsigned char i,i1,ad_result;
unsigned char power_ok;
power_ok=power_ok;
power_pin[0]=16;
power_pin[1]=0;
power_pin[2]=0;
power_pin[3]=0;
power_pin[4]=0;
power_pin[5]=0;
power_pin[6]=0;
power_pin[7]=0;
power_pin[8]=0;
power_pin[9]=0; //最多设计10个电源脚
for(i=0;i<=10;i++)
{
if(power_pin[i]!=0)
{ power_ok=0;
high_select(power_pin[i]);
for(i1=1;i1<=max_pin;i1++)
{
if(i1<=16) init_adc_b();
if(i1>16) init_adc();
analog_switch_select(i1);
start_ad();//起动AD转换
while(ad_count==0); //等待数据采集完毕
ad_count=0;//采集标志置零,为下一次采集作准备
ad_result=check(1);
if(ad_result==0)
{
power_ok=1;
i1=0xf0;
}//if
}//for
if(power_ok==1)
{
power_pin_f[i]=1;
}
else
{
power_pin_f[i]=0;
}
}//if
}//for
if(power_pin[0]!=0 && power_pin_f[0]==1 )
del_power_pin[0]=power_pin[0];
else
del_power_pin[0]=0;
if(power_pin[1]!=0 && power_pin_f[1]==1 )
del_power_pin[0]=power_pin[1];
else
del_power_pin[1]=0;
if(power_pin[2]!=0 && power_pin_f[2]==1 )
del_power_pin[0]=power_pin[2];
else
del_power_pin[2]=0;
if(power_pin[3]!=0 && power_pin_f[3]==1 )
del_power_pin[0]=power_pin[3];
else
del_power_pin[3]=0;
if(power_pin[4]!=0 && power_pin_f[4]==1 )
del_power_pin[0]=power_pin[4];
else
del_power_pin[4]=0;
if(power_pin[5]!=0 && power_pin_f[5]==1 )
del_power_pin[0]=power_pin[5];
else
del_power_pin[5]=0;
if(power_pin[6]!=0 && power_pin_f[6]==1 )
del_power_pin[0]=power_pin[6];
else
del_power_pin[6]=0;
if(power_pin[7]!=0 && power_pin_f[7]==1 )
del_power_pin[0]=power_pin[7];
else
del_power_pin[7]=0;
if(power_pin[8]!=0 && power_pin_f[8]==1 )
del_power_pin[0]=power_pin[8];
else
del_power_pin[8]=0;
if(power_pin[9]!=0 && power_pin_f[9]==1 )
del_power_pin[0]=power_pin[9];
else
del_power_pin[9]=0;
}
unsigned char check_test(void)
{
if (Short_grup1[0]==0 && open[0]==0 && pin_power_wrong[0]==0)
return 0;
else
return 0xff;
}
void find_open_test(void) //open[]
{
unsigned char i,i1,i2;
unsigned char a;//,b,c;
unsigned int delay;
unsigned int i3;
open_count=0;
short_count=0;
for(i=1;i<=40;i++) open[i-1]=0;
i2=0;
for(i1=0;i1<32;i1++)
{
if(pin_power_wrong[i1]==0)
{
i1=50;
}
else
{
i2++;
}
}
a=0;
for(i=1;i<=i2;i++)
{
i3=pin_power_wrong[i-1];
cmod_595_single_lower(i3);
ad_select_send(i3);
for(delay=0;delay<3000;delay++);
start_ad();//起动AD转换
while(ad_count==0); //等待数据采集完毕
ad_count=0;//采集标志置零,为下一次采集作准备
check_result=check(1);
if(check_result==2)
{
open[a]=i3;
pin_power_wrong[i-1]=0;
a++;
}
}
i3=0;
for(i=1;i<=i2;i++)
{
if(pin_power_wrong[i-1]==0)
{
}
else
{
if(i3==(i-1))
{
i3++;
}
else
{
pin_power_wrong[i3]=pin_power_wrong[i-1];
pin_power_wrong[i-1]=0;
i3++;
}
}
}
}
void delay_n(unsigned char i)
{
// int i3;
delay(10);
/* switch(i)
{
case 1:
delay(10);
break;
case 2:
delay(10);
break;
case 43:
delay(7);
break;
case 44:
delay(3);
break;
case 45:
for(i3=0;i3<2000;i3++);
break;
case 46:
for(i3=0;i3<2000;i3++);
break;
default:
for(i3=0;i3<500;i3++);
break;
} */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -