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

📄 set_function.h

📁 msp430和nrf905的例子,联系qqliuyong007@163.com
💻 H
字号:
/*--------------system_setup_function------------------------------*/
/*--------------------显示区域背影函数-----------------------*/
void back_char(unsigned char row,unsigned char col,unsigned char n)      //背光
{unsigned int cursor,tempaddress,addl,addh;
unsigned char i;
      for(i=0;i<n;i++)
       {      
        cursor=row*20+col+i;		 //第一显示区
	tempaddress=cursor;
	addl=tempaddress&0x00ff;
	addh=((cursor&0xff00)>>8);	
	
	WRCommand(0x46);		//设置光标指针
	WRData(addl);
	WRData(addh);			
			   		
	WRCommand(0x4F);	//光标下移,CSRDIR代码	
		
	WRCommand(0x42);	//设置数据写入,MWRITE代码
	WRData(0x83);           //?
	WRData(0x83);
      }
}
/*-----------------键盘背景函数------------------*/
void back_keyboad()
{
unsigned char i,k;

  for(i=0;i<2;i++)
  {
   for (k=0;k<5;k++)
   CCDisplay((19+i*4),(0+k*4),0x80);
  
  }
}
/*----------键盘显示函数--------------*/
void Display_keyboard()
{
GCDisplay_C(148,1,CTable50);
GCDisplay_C(148,5,CTable51);
GCDisplay_C(148,9,CTable52);
GCDisplay_C(148,13,CTable53);
GCDisplay_C(148,17,CTable54);
GCDisplay_C(180,1,CTable55);
GCDisplay_C(180,5,CTable56);
GCDisplay_C(180,9,CTable57);
GCDisplay_C(180,13,CTable58);
GCDisplay_C(180,17,CTable59);
back_keyboad();
}

/*--------------------数值补码求解函数------------------*/
PatchCode(signed long data)//求一个32位数的正负
{unsigned long data_temp;
 data_temp=data;
 if(data_temp>0x7fffffff)
 {
  data_temp=~(data_temp-1);
  }  
 return(data_temp);                       //
}
/*--------------------------求x^y值的函数--------------------------*/
unsigned int PF(unsigned char x, unsigned char y)    //求x^y的值
{
unsigned int pf;
unsigned char i;
pf=1;
for(i=0;i<y;i++)
{pf*=x;
}
return(pf);
}

/*---------------------------数值设置函数----------------------*/
unsigned int set_value(unsigned char row,unsigned char col,unsigned char n)

{
   unsigned char set,temp_flag_setup,temp_flag_updown,temp_col;
   unsigned int value;
   unsigned char i;
   unsigned char temp_value[5];
   set=1;
   value=0;
   temp_col=col;
   flag.updown=0;
   flag.sure=0;
   flag.number=0;
   temp_flag_setup=flag.setup;
   temp_flag_updown=flag.updown;
   back_char((row/8),col,(n*2));
   /*for(i=0;i<n;i++)
   {
   Display_Number1(row,(col+i*2),0);
   }*/
   i=0;
   while (set)
   {
     if(flag.gb==1)
      {
         flag.gb=0;
         Display_Number1(row,col,flag.number);
         temp_value[i]=flag.number;
         
         col+=2;
         i++;
          flag.updown=i;
       if(i==n)
         { col=temp_col;
            i=0;
         }/*if*/
          
      }/*if*/
        _NOP();
        _NOP();
     
       
       if (flag.sure==1)
         {
          flag.sure=0;
          for(i=0;i<n;i++)
          { 
          value+=temp_value[i]*PF(10,(n-i-1));
          }  /*for*/
          if(value>0xFFFF)
           { value=0xFFFF;
           }  /*if*/
          set=0;
          flag.setup=temp_flag_setup+1;
          flag.updown=temp_flag_updown;
          flag.gb=1;
          return(value);
         }/*if,这里有结束循环的条件,读程序的时候要特别注意*/
       
         
   }/*while*/
flag.setup=temp_flag_setup;            //程序能运行到这里吗???
flag.updown=temp_flag_updown;
return(value);
}

/*---------------------数值选择设置函数------------------*/
unsigned set_choice(unsigned char row,unsigned char col)
{
unsigned char temp_flag_setup,temp_flag_updown;
unsigned  temp_flag;
  temp_flag_setup=flag.setup;
  temp_flag_updown=flag.updown;
  flag.sure=0;
  flag.updown=0;
  GCDisplay(row,col,CTable83);
  while(1)
  {
  if(flag.gb==1)
     {
     flag.gb=0;
    switch(flag.updown)
     {
     case 0: GCDisplay(row,col,CTable83);temp_flag=0;break;
     case 1: GCDisplay(row,col,CTable82);temp_flag=1;break;
     default: flag.updown=0;break;
      
     }
     
   if(flag.sure==1)
    {
     flag.sure=0;
     flag.updown=temp_flag_updown;
     flag.setup=temp_flag_setup+1;
     flag.gb=1;
     if(temp_flag==0)
       return(0);
     if(temp_flag==1)
       return(1);
     }
    }
    _NOP();
    _NOP();
   }
}
/*---------------------地址设置函数-------------------------*/
void Set_address(void)                       //地址设置函数
{     
 back_char(4,1,8);
 if(flag.sure==1)
  {
  flag.sure=0;
  systemsetup.sbh=set_value(32,11,4);
  return;
  }
}
/*---------------------CT变比设置函数-------------------------*/
void Set_CTrate(void)                         //CT变比设置函数
{
back_char(7,1,8);
 if(flag.sure==1)
 { 
  flag.sure=0;
  systemsetup.CT=set_value(56,11,4);
  return;
  }
}
/*---------------------PT变比设置函数-------------------------*/
void Set_PTrate(void)                      //PT变比设置函数
{
 back_char(10,1,8);
 if(flag.sure==1)
  { 
  flag.sure=0;
  systemsetup.PT=set_value(80,11,4);
  return;
  }
}
/*---------------------设置密码函数-------------------------*/
void Set_codeset(void)                       //设置密码函数
{
 
 back_char(13,1,8);
 if(flag.sure==1)
  { 
  flag.sure=0;
  systemsetup1.passwordL1=set_value(104,11,4);
  return;
  }
 
}
/*---------------------波特率选择函数-------------------------*/
void Set_baudrate(void)                 //波特率选择函数
{
 back_char(16,1,8);
 if(flag.sure==1)
 {
   flag.sure=0;
   
   Display_Number1(128,10,1);
   systemsetup.baudrate.com1=set_value(128,12,1);
   flag.gb=0;
   flag.setup--;
   Display_Number1(128,10,2);
   systemsetup.baudrate.com2=set_value(128,12,1);
   flag.gb=0;
   flag.setup--;
   Display_Number1(128,10,3);
   systemsetup.baudrate.com3=set_value(128,12,1);
   flag.gb=0;
   flag.setup--;
   Display_Number1(128,10,4);
   systemsetup.baudrate.com4=set_value(128,12,1);
   
 }
 return;
}
/*---------------------通讯模式设置函数-------------------------*/
void Set_conmode(void)                    //通讯模式设置函数
{
unsigned set=1;
unsigned temp_flag_setup,temp_flag_updown;
 
 back_char(4,1,8); 
 if(flag.sure==1)
 {
   flag.sure=0;
   temp_flag_setup=flag.setup;
   temp_flag_updown=flag.updown;
   flag.updown=0;
   flag.gb=1;
   while(set)
    {
    if(flag.gb==1)
     {
     flag.gb=0;
     switch(flag.updown)
     {
      case 0:
        GCDisplay( 32,10, CTable16);
        GCDisplay( 32,12, CTable18);
        GCDisplay( 32,14, CTable21);
        GCDisplay( 32,16, CTable22);   
        break;
      case 1:
        GCDisplay( 32,10, CTable17);
        GCDisplay( 32,12, CTable18);
        GCDisplay( 32,14, CTable17);
        GCDisplay( 32,16, CTable20); 
        break;
      case 2:
        GCDisplay( 32,10, CTable17);
        GCDisplay( 32,12, CTable18);
        GCDisplay( 32,14, CTable19);
        GCDisplay( 32,16, CTable20); 
        break;
     default: flag.updown=0; break;
    }
  if(flag.sure==1)
   {
    flag.sure=0;
    systemsetup.connectionmode=flag.updown;
    flag.setup=temp_flag_setup+1;
    flag.updown=temp_flag_updown;
    set=0;
    flag.gb=1;
    return;
    }
   }
   _NOP();
   _NOP();
  }
 }
}
/*---------------------事件清除设置函数-------------------------*/
void Set_eveclr(void)              //事件清除函数
{
  back_char(7,1,8);
  
  if(flag.sure==1)
  { 
  flag.evecl=set_choice(56,10);
  }
}
/*---------------------清除电度设置函数-------------------------*/
void Set_edgclr(void)              //清除电度函数
{
back_char(10,1,8);
  
 if(flag.sure==1)
  { 
   flag.edgcl= set_choice(80,10);
  }
}
/*---------------------清除最值设置函数-------------------------*/
void Set_limiclr(void)                       //清除最值函数
{

back_char(13,1,8);
 if(flag.sure==1)
  { 
   flag.limicl= set_choice(104,10);
  }
}
/*---------------------校表设置函数-------------------------*/
void Set_verify()
{unsigned char p,i;
/*float Pgainerr[3][2];      //功率增益
 float Phsregerr[3][5];    //角差校正
 float Ur[3];              //实际输入电压值
 float Ir[3];              //实际输入电流值*/

 back_char(16,1,8);
 if(flag.sure==1)
 {
   flag.sure=0;
   for(i=0;i<3;i++)
   {for(p=0;p<2;p++)
   {
    Display_Number1(128,10,i);
    Display_Number1(128,12,p);
    Pgainerr[i][p]=set_value(128,14,3);
    flag.gb=0;
    flag.setup--;
   }
   }
   for(i=0;i<3;i++)
   {for(p=0;p<5;p++)
   {
    Display_Number1(128,10,i);
    Display_Number1(128,12,p);
    Phsregerr[i][p]=set_value(128,14,3);
    flag.gb=0;
    flag.setup--;
   }
   }
   for(i=0;i<2;i++)
   {
   for(p=0;p<3;p++)
   {
    Display_Number1(128,10,i);
    Display_Number1(128,12,p);
    UIr[i][p]=set_value(128,14,3);
    flag.gb=0;
    flag.setup--;
   }
   }
    flag.gb=1;
    flag.setup++;
    flag.jy=1;
    return;
  }
 return;
}

⌨️ 快捷键说明

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