📄 main.c
字号:
}
}
else if(i==3)
{
add_calculate_layer2(O_XL,O_YL);
pt_pre_num=pt[send_buf[i-1]];
pt_cur_num=pt[send_buf[i]];
for(j=0;j<22;j++)
{
unror_number_cur=pt_cur_num[j];
unror_number_pre=pt_pre_num[j];
unror_number_cur=_iror_(unror_number_cur,4);
unror_number_cur&=0x0fff;
unror_number_pre=_irol_(unror_number_pre,6);
unror_number_pre&=0xf000;
unror_number_cur=unror_number_pre|unror_number_cur;
CWR=mwrite;
_nop_();
save=unror_number_cur/256;
DWR=save;
save=unror_number_cur%256;
O_YL++;
add_calculate_layer2(O_XL,O_YL);
}
O_YL=temp;
O_XL++;
}
else if(i==4)
{
if(F_Refurbish_Volt) //modify at 2005-12-16
{
mwrite_1330_1bytes(characters_clr,22,1);
mwrite_1330_1bytes(characters_clr,22,1);
}
else
{
add_calculate_layer2(O_XL,O_YL);
pt_pre_num=pt[send_buf[i-1]];
pt_cur_num=pt[send_buf[i]];
for(j=0;j<22;j++)
{
unror_number_cur=pt_cur_num[j];
unror_number_pre=pt_pre_num[j];
unror_number_cur=_iror_(unror_number_cur,6);
unror_number_cur&=0x03ff;
unror_number_pre=_irol_(unror_number_pre,4);
unror_number_pre&=0xfb00;
unror_number_cur=unror_number_pre|unror_number_cur;
CWR=mwrite;
_nop_();
save=unror_number_cur/0x100;
DWR=save;
save=unror_number_cur%0x100;
DWR=save;
O_YL++;
add_calculate_layer2(O_XL,O_YL);
}
O_YL=temp;
O_XL++;
}
}
}
CWR=csrdir_down;
}
void clr_setting_value()
{
unsigned char k;
for(k=0;k<5;k++){*(setting_value+k)=0;}
}
void SaveTo6264(unsigned char Data)
{
unsigned char j;
if(!(((Data-1)/4)%2))
{
for(j=0;j<4;j++)
{
if(j<2){setting_chao_kai[(Data-1)/8][j+((Data-1)%4)*4]=*(setting_value+j);}
else {setting_chao_kai[(Data-1)/8][j+((Data-1)%4)*4]=*(setting_value+j+1);}
}
}
else
{
for(j=0;j<4;j++)
{
if(j<2){setting_chao_kai[(Data-1)/8+4][j+((Data-1)%4)*4]=*(setting_value+j);}
else {setting_chao_kai[(Data-1)/8+4][j+((Data-1)%4)*4]=*(setting_value+j+1);}
}
}
}
void LoadFrom6264(unsigned char Data)
{
unsigned char j;
if(!(((Data-1)/4)%2))
{
for(j=0;j<4;j++)
{
if(j<2){*(setting_value+j)=setting_chao_kai[(Data-1)/8][j+((Data-1)%4)*4];}
else {*(setting_value+j+1)=setting_chao_kai[(Data-1)/8][j+((Data-1)%4)*4];}
}
setting_value[2]=10;
}
else
{
for(j=0;j<4;j++)
{
if(j<2){*(setting_value+j)=setting_chao_kai[(Data-1)/8+4][j+((Data-1)%4)*4];}
else {*(setting_value+j+1)=setting_chao_kai[(Data-1)/8+4][j+((Data-1)%4)*4];}
}
setting_value[2]=10;
}
}
void addr_map(unsigned char addr_map_temp)
{
switch(addr_map_temp)
{
case 1:
{
O_XL=O_XL_S_ZHU_I_C_UP;
O_YL=O_YL_S_ZHU_I_C_UP;
break;
}
case 2:
{
O_XL=O_XL_S_ZHU_II_C_UP;
O_YL=O_YL_S_ZHU_II_C_UP;
break;
}
case 3:
{
O_XL=O_XL_S_ZHU_III_C_UP;
O_YL=O_YL_S_ZHU_III_C_UP;
break;
}
case 4:
{
O_XL=O_XL_S_ZHU_IV_C_UP;
O_YL=O_YL_S_ZHU_IV_C_UP;
break;
}
case 5:
{
O_XL=O_XL_S_ZHU_I_C_DOWN;
O_YL=O_YL_S_ZHU_I_C_DOWN;
break;
}
case 6:
{
O_XL=O_XL_S_ZHU_II_C_DOWN;
O_YL=O_YL_S_ZHU_II_C_DOWN;
break;
}
case 7:
{
O_XL=O_XL_S_ZHU_III_C_DOWN;
O_YL=O_YL_S_ZHU_III_C_DOWN;
break;
}
case 8:
{
O_XL=O_XL_S_ZHU_IV_C_DOWN;
O_YL=O_YL_S_ZHU_IV_C_DOWN;
break;
}
case 9:
{
O_XL=O_XL_S_ZHU_I_K_UP;
O_YL=O_YL_S_ZHU_I_K_UP;
break;
}
case 10:
{
O_XL=O_XL_S_ZHU_II_K_UP;
O_YL=O_YL_S_ZHU_II_K_UP;
break;
}
case 11:
{
O_XL=O_XL_S_ZHU_III_K_UP;
O_YL=O_YL_S_ZHU_III_K_UP;
break;
}
case 12:
{
O_XL=O_XL_S_ZHU_IV_K_UP;
O_YL=O_YL_S_ZHU_IV_K_UP;
break;
}
case 13:
{
O_XL=O_XL_S_ZHU_I_K_DOWN;
O_YL=O_YL_S_ZHU_I_K_DOWN;
break;
}
case 14:
{
O_XL=O_XL_S_ZHU_II_K_DOWN;
O_YL=O_YL_S_ZHU_II_K_DOWN;
break;
}
case 15:
{
O_XL=O_XL_S_ZHU_III_K_DOWN;
O_YL=O_YL_S_ZHU_III_K_DOWN;
break;
}
case 16:
{
O_XL=O_XL_S_ZHU_IV_K_DOWN;
O_YL=O_YL_S_ZHU_IV_K_DOWN;
break;
}
case 17:
{
O_XL=O_XL_S_FU_I_C_UP;
O_YL=O_YL_S_FU_I_C_UP;
break;
}
case 18:
{
O_XL=O_XL_S_FU_II_C_UP;
O_YL=O_YL_S_FU_II_C_UP;
break;
}
case 19:
{
O_XL=O_XL_S_FU_III_C_UP;
O_YL=O_YL_S_FU_III_C_UP;
break;
}
case 20:
{
O_XL=O_XL_S_FU_IV_C_UP;
O_YL=O_YL_S_FU_IV_C_UP;
break;
}
case 21:
{
O_XL=O_XL_S_FU_I_C_DOWN;
O_YL=O_YL_S_FU_I_C_DOWN;
break;
}
case 22:
{
O_XL=O_XL_S_FU_II_C_DOWN;
O_YL=O_YL_S_FU_II_C_DOWN;
break;
}
case 23:
{
O_XL=O_XL_S_FU_III_C_DOWN;
O_YL=O_YL_S_FU_III_C_DOWN;
break;
}
case 24:
{
O_XL=O_XL_S_FU_IV_C_DOWN;
O_YL=O_YL_S_FU_IV_C_DOWN;
break;
}
case 25:
{
O_XL=O_XL_S_FU_I_K_UP;
O_YL=O_YL_S_FU_I_K_UP;
break;
}
case 26:
{
O_XL=O_XL_S_FU_II_K_UP;
O_YL=O_YL_S_FU_II_K_UP;
break;
}
case 27:
{
O_XL=O_XL_S_FU_III_K_UP;
O_YL=O_YL_S_FU_III_K_UP;
break;
}
case 28:
{
O_XL=O_XL_S_FU_IV_K_UP;
O_YL=O_YL_S_FU_IV_K_UP;
break;
}
case 29:
{
O_XL=O_XL_S_FU_I_K_DOWN;
O_YL=O_YL_S_FU_I_K_DOWN;
break;
}
case 30:
{
O_XL=O_XL_S_FU_II_K_DOWN;
O_YL=O_YL_S_FU_II_K_DOWN;
break;
}
case 31:
{
O_XL=O_XL_S_FU_III_K_DOWN;
O_YL=O_YL_S_FU_III_K_DOWN;
break;
}
case 32:
{
O_XL=O_XL_S_FU_IV_K_DOWN;
O_YL=O_YL_S_FU_IV_K_DOWN;
break;
}
}
}
void work_573()
{
P2_5=1;
P2_6=1;
P2_7=0;
}
void work_none()
{
P2_5=0;
P2_6=1;
P2_7=1;
}
void absorb_AC()
{
P0=save_p0;
work_573();
start_AC=0;
save_p0=P0;
work_none();
}
void motor_go(unsigned char direction)
{
P0=save_p0;
if(direction==negative)
{
motor1_positive=1;
motor1_negative=0;
}
else if(direction==positive)
{
motor1_positive=0;
motor1_negative=1;
}
else if(direction==stop)
{
motor1_positive=1;
motor1_negative=1;
}
work_573();
save_p0=P0;
work_none();
}
void release_AC()
{
P0=save_p0;
start_AC=1;
work_573();
save_p0=P0;
delay(10);
work_none();
}
void read_state_touch()
{
unsigned char state;
P1=0xff;
state=P1;
if(state&0x01){Touch_One=1;}
else {Touch_One=0;}
if(state&0x02){Touch_Two=1;}
else {Touch_Two=0;}
if(state&0x04){Touch_Three=1;}
else {Touch_Three=0;}
if(state&0x08){Touch_Four=1;}
else {Touch_Four=0;}
if(state&0x10){Touch_Five=1;}
else {Touch_Five=0;}
if(state&0x20){Touch_Six=1;}
else {Touch_Six=0;}
if(state&0x40){Touch_Seven=1;}
else {Touch_Seven=0;}
if(state&0x80){Touch_Eight=1;}
else {Touch_Eight=0;}
center_touch=1;
if(center_touch){Touch_Main=1;}
else {Touch_Main=0;}
}
void HexToDecimalist(unsigned char Noub)
{
unsigned int save_count;
save_count=Touch_Value[Noub*2]*256+Touch_Value[Noub*2+1];
save_count=save_count*4/10;
/*
length_buf[3]=save_count%10;
length_buf[2]=(save_count%100)/10;
length_buf[1]=(save_count%1000)/100;
length_buf[0]=(save_count%10000)/1000;
*/
length_buf[3]=save_count%10;
length_buf[2]=(save_count%100)/10;
length_buf[1]=save_count/100%10;
length_buf[0]=save_count/1000;
}
void Account_Length()
{
unsigned char i,j;
unsigned int All_Distance_Temp,Touch_Value_Temp;
All_Distance_Temp=All_Distance[0]*256+All_Distance[1];
//All_Distance_Temp=All_Distance_Temp/10*4;
for(i=0;i<8;i++)
{
Touch_Value_Temp=Touch_Value[2*i]*256+Touch_Value[2*i+1];
//Touch_Value_Temp=Touch_Value_Temp/10*4;
Touch_Value_Temp=All_Distance_Temp-Touch_Value_Temp;
Touch_Value[16+2*i]=Touch_Value_Temp/256;
Touch_Value[16+2*i+1]=Touch_Value_Temp%256;
}
// for different distance between master and slave ;
if(setting_style_addr==4)
{
for(i=0;i<4;i++)
{
Touch_Value_Temp=Touch_Value[2*i]*256+Touch_Value[2*i+1];
Touch_Value_Temp/=3;
Touch_Value[2*i]=Touch_Value_Temp/256;
Touch_Value[2*i+1]=Touch_Value_Temp%256;
Touch_Value_Temp=Touch_Value[16+2*i]*256+Touch_Value[16+2*i+1];
Touch_Value_Temp=Touch_Value_Temp/3;
Touch_Value[16+2*i]=Touch_Value_Temp/256;
Touch_Value[16+2*i+1]=Touch_Value_Temp%256;
}
}
//*****************************************************
/*
for(i=0;i<8;i++)
{
Touch_Value_Temp=TH0*256+TL0;
Touch_Value_Temp=Touch_Value_Temp*4/10;
//Touch_Value_Temp=All_Distance_Temp-Touch_Value_Temp;
Touch_Value[16+2*i]=Touch_Value_Temp/256;
Touch_Value[16+2*i+1]=Touch_Value_Temp%256;
}
*/ //test grating
for(i=0;i<4;i++)
{
for(j=0;j<16;j++)
{
if(!(j%4)){HexToDecimalist(i*4+j/4);}
save_6264[team][i][j]=length_buf[j%4]; //send the test data to 6264 ****
}
}
}
void judge_error()
{
unsigned char i,j,k;
unsigned int Error_Temp;
unsigned int Shift;
for(i=0;i<4;i++)
{
for(j=0;j<16;j++)
{
*(Min_Value+j%4)=*(*(setting_chao_kai+i)+j);
if((j==3)||(j==7)||(j==11)||(j==15))
{
Error=Error<<1;
if(!(i%2)){HexToDecimalist(i*2+j/4);}
else {HexToDecimalist(i*2-2+j/4+8);}
//Error++;
for(k=0;k<4;k++)
{
if(length_buf[k]<Min_Value[k])
{
Error++;
//_irol_(Error,i*j/8);
//save_6264[team][i][16+j/4]=1;
break;
}
else if(length_buf[k]>Min_Value[k])
{
//save_6264[team][i][16+j/4]=0;
break;
}
}
//Error++;
//_irol_(Error,1);
//Error=Error<<1;
//Error&=0xfffe;
}
}
}
for(i=0;i<4;i++)
{
for(j=0;j<16;j++)
{
*(Max_Value+j%4)=*(*(setting_chao_kai+i+4)+j);
if((j==3)||(j==7)||(j==11)||(j==15))
{
Error_Temp=Error_Temp<<1;
if(!(i%2)){HexToDecimalist(i*2+j/4);}
else {HexToDecimalist(i*2-2+j/4+8);}
//Error_Temp++;
for(k=0;k<4;k++)
{
if(length_buf[k]>Max_Value[k])
{
Error_Temp++;
//_irol_(Error,i*j/8);
//save_6264[team][i+2][16+j/4]=1;
break;
}
else if(length_buf[k]<Max_Value[k])
{
//save_6264[team][i+2][16+j/4]=0;
break;
}
}
//_irol_(Error_Temp,1);
//Error_Temp=Error_Temp<<1;
//Error_Temp&=0xfffe;
}
}
}
Error=Error|Error_Temp;
//Error=0x1234; //for test;
for(i=0;i<16;i++)
{
Shift=Shift>>1;
if(Error&0x8000){Shift|=0x8000;}
else {Shift&=0x7fff;}
Error=Error<<1;
}
Error=Shift&0x00f0;
Error=Error<<8;
Error=Error|(Shift&0x0f00);
Shift&=0xf00f;
Error=Error>>4;
Shift=Shift|Error;
Error=Shift;
Save_Error[team]=Error;
//Save_Error[team]=0xffff; // for test;
}
void Addr_62642_CPU_Map(unsigned char Noub)
{
switch(Noub)
{
case 1:
{
O_XL=O_XL_ZHU_I_C;
O_YL=O_YL_ZHU_I_C;
break;
}
case 2:
{
O_XL=O_XL_ZHU_II_C;
O_YL=O_YL_ZHU_II_C;
break;
}
case 3:
{
O_XL=O_XL_ZHU_III_C;
O_YL=O_YL_ZHU_III_C;
break;
}
case 4:
{
O_XL=O_XL_ZHU_IV_C;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -