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

📄 uifunction.c

📁 基于c的电动机保护程序
💻 C
📖 第 1 页 / 共 5 页
字号:
	i++;
	
	/***************************************************************************/
	/*								热容量                                     */
	/***************************************************************************/
	(Measure_Display_Data_Struct *) Measure_Display_Data -> DataAdd[j] = (float *)(StatusVarAdd + off_HeatOver_Ratio);
	j++;
	Symbol_Segment[i] = charrdot ;   //随便填的
	i++;
	Symbol_Segment[i] = 0 ;   //随便填的
	i++;
	
	/***************************************************************************/
	/*								相不平衡度                                 */
	/***************************************************************************/
	(Measure_Display_Data_Struct *) Measure_Display_Data -> DataAdd[j] =(float *) (StatusVarAdd + off_Unbalance_Current_Value);
	j++;
	Symbol_Segment[i] = charp ;   //随便填的
	i++;
	Symbol_Segment[i] = charh ;   //随便填的
	i++;
	   
}


unsigned long * MenuNode_Scan(int node1,int node2 )  //node1 主菜单,node2 子菜单
{
	unsigned long  * ActiveMenuTop;
	//int  ActiveMenu;
	unsigned long  * ActiveMenu;
	int i;
	switch(node1)
	{
		case 0:
			ActiveMenuTop =( unsigned long *)&Menu_0 ;
			break;

		case 1:
			ActiveMenuTop = ( unsigned long *)&Menu_1 ;
			break;
			
		case 2:
			ActiveMenuTop = ( unsigned long *)&Menu_2 ;
			break;
			
		case 3:
			ActiveMenuTop = ( unsigned long *)&Menu_3 ;
			break;
			
		case 4:
			ActiveMenuTop = ( unsigned long *)&Menu_4 ;
			break;
			
		case 5:
			ActiveMenuTop = ( unsigned long *)&Menu_5 ;
			break;
			
		case 6:
			ActiveMenuTop = ( unsigned long *)&Menu_6 ;
			break;
		
		
		
		case 7:
			ActiveMenuTop = ( unsigned long *)&Menu_7 ;
			break;
			
		case 8:
			ActiveMenuTop = ( unsigned long *)&Menu_8 ;
			break;
			
		case 9:
			ActiveMenuTop = ( unsigned long *)&Menu_9 ;
			break;
			
		case 10:
			ActiveMenuTop = ( unsigned long *)&Menu_10 ;
			break;
			
		case 11:
			ActiveMenuTop = ( unsigned long *)&Menu_11 ;
			break;
		
		case 12:
			ActiveMenuTop = ( unsigned long *)&Menu_12 ;
			break;
	
		case 13:
			ActiveMenuTop = ( unsigned long *)&Menu_13 ;
			break;

		default:
			ActiveMenuTop =( unsigned long *)&Menu_0 ;
	 		node1 = 0;
			break;

			
	}

	ActiveMenu = ActiveMenuTop ;
	for( i = node2; i > 0; i-- )
	{
		//ActiveMenu = *(int *)ActiveMenu 
		ActiveMenu = ((SubMenu_Struct *)ActiveMenu) -> NodeNext   ;
		
		
	}
	return ActiveMenu;
}





void KEY_Process( int KEY )
{
	int ii;
	switch(Func_Select)
	{
/*************************进入参数测量界面****************************/
	
		case Measure:
		{

			switch( KEY )
			{
				case DOWN:
					if( Protect_Select == Measure_StateNum-1 )
					{
						Protect_Select = 0 ;
					
					}
					else 
					{
						Protect_Select++;
				
					}
					ChangeDisplayFlag = 1;
					calTemp = 0;
					pdelaytime = updateTime;
					sound_flag = 1;
					sound_time = 0;
					 
					break;

				case UP:
					if( Protect_Select == 0 )
					{
						Protect_Select = Measure_StateNum -1;
					}
					else 
					{
						Protect_Select--;
					}
					pdelaytime = updateTime;
					sound_flag = 1;
					sound_time = 0;
					ChangeDisplayFlag = 1;
					calTemp = 0;
					
					break;

				case FUNC:
					Func_Select = NeedPassword;
					Up_Flag = 0;
					Enter_Flag = PasswordInput;
					passwordInputTimes = FirstTime;
					sound_flag = 1;
					sound_time = 0;
					break;
					
				case ENTER:
					if( Protect_Select == Measure_StateNum-1 )
					{
						diandu_disp++;
						diandu_disp %= 3;
					}
					
					ChangeDisplayFlag = 1;
					calTemp = 0;
					pdelaytime = updateTime;
					sound_flag = 1;
					sound_time = 0;
					 
					
					break;
					
					

				//case RESET:
					//Protect_Select = 0 ;
					//break;



				default:
					break;

		
			}
		}
       		 break;

/********************进入密码输入界面*******/
		case NeedPassword:
		{
			switch(KEY)
			{
				case UP:
					Up_Flag++;
					sound_flag = 1;
					break;

				case DOWN:
					Down_Flag++;
					sound_flag = 1;
					break;

				case ENTER:
					Enter_Flag = PasswordConfirm ;   // 3
						
					Up_Flag = -1;
					Down_Flag = -1;
					sound_flag = 1;
					break;
				
				case FUNC:
					Func_Select = Measure ;
					ChangeDisplayFlag = 1;
					calTemp = 0;
					Protect_Select = 0;
					Enter_Flag = -1;
					Up_Flag = -1;
					Down_Flag = -1;
					sound_flag = 1;
					calSampleNum= 17;
					calTemp = 0;
					pdelaytime = updateTime;  //LED内容立即更新 见setledbuff(void);
			}	


		}
		break;
		
		
		
/********************进入系统设置菜单*******/
		case System:      //第一个菜单地址在password(); 中设置
		{
			switch(KEY)
			{
				case UP:
					Up_Flag++;
					
					sound_flag = 1;
					break;

				case DOWN:
					Down_Flag++;
					
					sound_flag = 1;
					break;

				case ENTER:
					if( Enter_Flag == -1)
					{
						Enter_Flag = SystemParaSet;   
						runTimes = FirstTime;
						Up_Flag = 0;
					}
					else
					{
						Enter_Flag = SystemParaSetConfirm ;    
						runTimes = 0;
						Up_Flag = -1;
						Down_Flag = -1;
					}
					sound_flag = 1;
					break;
					
				
				case FUNC:
					Func_Select = Setting ;
					Protect_Select = 0 ;
					Enter_Flag = -1;
					Up_Flag = -1;
					Down_Flag = -1;
					pdelaytime = updateTime;
					sound_flag = 1;
					Menu_Level = 0;
			}	


		}
		break;


		
	/****************进入设定界面***************************/


		case Setting:	
		{

			switch( KEY )
			{
				case FUNC:
					Func_Select = Measure ;
					ChangeDisplayFlag = 1;
					calTemp = 0;
					Protect_Select = 0 ;
					Enter_Flag = -1;
					Up_Flag = -1;
					Down_Flag = -1;
					pdelaytime = updateTime;
					sound_flag = 1;
					calSampleNum= 17;
					calTemp = 0;

					break;

				case UP:
					
					if( Enter_Flag == FixingValue )
					{
						Up_Flag ++;
					}
					else
					{	
						Menu_Level = 0;
						if( Protect_Select == Protect_StateNum - 1 )
						{
							Protect_Select = 0 ;
						}
						else
						{
							Protect_Select++;
						}
					}
					sound_flag = 1;
					break;

				case DOWN:
					if( Enter_Flag == FixingValue )
					{
						Down_Flag ++;
					}
					else
					{	
						if( Menu_Level == Menu_Num  )
						{
							Menu_Level = 0;
						}
						else
						{
							Menu_Level = Menu_Level + 1;
						}
					}
					sound_flag = 1;
					break;


				case ENTER:
					if( Enter_Flag == -1)
					{
						Enter_Flag = FixingValue;   //0
						runTimes = FirstTime;
						Up_Flag = 0;
					}
					else
					{
						Enter_Flag = FixingConfirm ;   // 1 
						runTimes = 0;
						Up_Flag = -1;
						Down_Flag = -1;
					}
					sound_flag = 1;
					break;
					
			}
		}
     break;
  
	}
}







void  Float2Led(float value,U16 Data[3])
{
    float temp = value ;
    float temp_point = 0;
    int temp_pointToInt = 0;
    int p = 0;
    int temp_int = 0 ;
    int temp_left = 0 ;
    U16 Float2LedValue[3] ;
   
   
	
	
	Float2LedValue[0] = 0;
	Float2LedValue[1] = 0 ;
	Float2LedValue[2] = 0;
    temp_int = temp ;
    temp_point = temp - temp_int + 0.00001 ;


    if( temp_int > 999 )
    {
        Float2LedValue[0] =  LedNum[9];
        Float2LedValue[1] =  LedNum[9];
        Float2LedValue[2] =  LedNum[9];

    }


    temp_left = temp_int;


    if( (temp_int > 99) && (temp_int <= 999) )
    {
        p = temp_int / 100;
        Float2LedValue[0] = LedNum[ p ] ;
        temp_left -= p*100;

		if( (temp_left >= 0) && (temp_left <10) )
		{
			Float2LedValue[1] = LedNum[ 0 ];
			Float2LedValue[2] = LedNum[ temp_left ] ;;
			

		}
		else
		{
            	p = temp_left / 10 ;
           		Float2LedValue[1] = LedNum[ p ] ;
            
          	  	temp_left -= p*10;
        		

            	Float2LedValue[2] = LedNum[ temp_left ] ;
       	 	
		}
    }





    if( (temp_int > 9) && (temp_int <= 99) )
    {

			if(temp_pointToInt != 0)
			{				
           	 temp_pointToInt = temp_point * 100 ;
            temp_pointToInt %= 10 ;
            }
             else temp_pointToInt = 0;


          //  if( temp_pointToInt >= 5 )
          //  {
                p = temp_int / 10;
                Float2LedValue[0] = LedNum[p] ;
                temp_left -= p * 10 ;
                Float2LedValue[1] = Numdot[temp_left];
                temp_pointToInt = temp_point * 10;
/***************************小数部分*********************************/
                Float2LedValue[2] = LedNum[ temp_pointToInt  ];
               

          //  }
         //   else
          //  {
             /*     temp_pointToInt = temp_point * 10 ;
                  temp_pointToInt %= 10 ;


                  if( temp_pointToInt == 0 )
                     {
                            p= temp_int / 10;
                         Float2LedValue[0] = LedNum[ 10 ];
                         Float2LedValue[1] = LedNum[ p ] ;
                         temp_left -= p * 10 ;
                Float2LedValue[2] = LedNum[ temp_left ];
             }
        }*/

    }

/************************************************************/

    if( (temp_int >= 0 ) && (temp_int <= 9) )
    {
        temp_pointToInt = temp_point * 1000 ;
        temp_pointToInt %= 100 ;


       // if( temp_pointToInt >= 5 )
       // {
        	 Float2LedValue[0] = Numdot[ temp_int ] ;
            temp_pointToInt = temp_point * 10+0.000001 ;

/***************************小数部分*********************************/
            Float2LedValue[1] = LedNum[ temp_pointToInt ];
            temp_pointToInt = temp_point * 100 - temp_pointToInt*10;
            Float2LedValue[2] = LedNum[ temp_pointToInt ];

⌨️ 快捷键说明

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