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

📄 main.c

📁 一款高科技新产品
💻 C
📖 第 1 页 / 共 4 页
字号:
			 }
		 }
		 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 + -