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

📄 uifunction.c

📁 基于c的电动机保护程序
💻 C
📖 第 1 页 / 共 5 页
字号:
	{
		/*************************判断菜单切换的时候是不是进入时间菜单***********/
		if( ((System_Menu_Struct *)ActiveMenuAdd) != (&Time_Menu) )
		{
		     if( Down_Flag == 0 )
		     {
		     		ActiveMenuAdd =((System_Menu_Struct *)ActiveMenuAdd)->NodeNext ;
		     		if( ((System_Menu_Struct *)ActiveMenuAdd) == (&Time_Menu) )
		     		{
		     			TimeSetting_Level = setYear;
		     		}
		     		
		     	
		     		Down_Flag = -1;
		     }
		     
		      if( Up_Flag == 0 )
		     {
		     		ActiveMenuAdd =((System_Menu_Struct *)ActiveMenuAdd)->NodePre;
		     		if( ((System_Menu_Struct *)ActiveMenuAdd) == (&Time_Menu) )
		     		{
		     			TimeSetting_Level = setSecond;
		     		}
		     		Up_Flag = -1;
		     }
		     
		   
		}
		
		
		else
		{
			if( Up_Flag == 0 )
			{
				if( TimeSetting_Level == setYear)
				{
					ActiveMenuAdd =((System_Menu_Struct *)ActiveMenuAdd)->NodePre;	
				}
				else
				{
					TimeSetting_Level--;
				}
				Up_Flag = -1;
			}
			if( Down_Flag ==0 )
			{
				if( TimeSetting_Level == setSecond )
				{
					ActiveMenuAdd =((System_Menu_Struct *)ActiveMenuAdd)->NodeNext;	
				}
				else
				{
					TimeSetting_Level++;
				}
				Down_Flag = -1;
				
			}
		}
		/*--------------------------------------------------------------------*/	
			
		if( ((System_Menu_Struct *)ActiveMenuAdd)->MenuType != TimeSetting  )
		{
		
			if( ((System_Menu_Struct *)ActiveMenuAdd)->MenuType == SelectFunc )
		     {
		     	LED_1 = ((System_Menu_Struct *)ActiveMenuAdd) -> symbolData[0] ;
		     	LED_2 = ((System_Menu_Struct *)ActiveMenuAdd) -> symbolData[1] ;
		     	LED_3 = LED_3 & 0xFF;
		     	
		     	Float2Led( *(((System_Menu_Struct *)ActiveMenuAdd)->dataAdd) ,LedValue);
		     	LED_4 = LedValue[0] & 0xFE00;
		     	
		     }
		    
		     if( ((System_Menu_Struct *)ActiveMenuAdd)->MenuType == ValueSetting )
		     {	
		     	
		     	Bit_NeedSet = ((System_Menu_Struct *)ActiveMenuAdd)->BitNeedSet;
		     				
		     	LED_1 = ((System_Menu_Struct *)ActiveMenuAdd) -> symbolData[0];
         
         
         if( (((System_Menu_Struct *)ActiveMenuAdd) -> DotEnable) == noDot)//无小数点
         {
         	if( (((System_Menu_Struct *)ActiveMenuAdd) -> BitNeedSet) !=3 )
		     {
		     	LED_2 = ((System_Menu_Struct *)ActiveMenuAdd) -> symbolData[1] ;
		     		
		     		
		     	
		     	//Float2Led( *(((System_Menu_Struct *)ActiveMenuAdd) -> dataAdd),LedValue );
		     	
		     	datatemp = *(((System_Menu_Struct *)ActiveMenuAdd) -> dataAdd);
		     	
		     	if(datatemp>99)
		     	{
		     		LED_3 = LedNum[9];
		     		LED_4 = LedNum[9];
		     	}
		     	else
		     	{
		     		LED_3 = LedNum[datatemp/10];
		     		LED_4 = LedNum[datatemp%10];
		     	}
		     }
		   
         	else
			{	
				
				datatemp = *(((System_Menu_Struct *)ActiveMenuAdd) -> dataAdd);
				if(datatemp>999)
		     	{
		     		LED_3 = LedNum[9];
		     		LED_3 = LedNum[9];
		     		LED_4 = LedNum[9];
		     	}
		     	else
		     	{
					LED_2 =  LedNum[datatemp/100];
					LED_3 =  LedNum[datatemp%100/10];
					LED_4 =  LedNum[datatemp%10];
				}
				
			}
         
         }  //end  if( (((System_Menu_Struct *)ActiveMenuAdd) -> DotEnable) == 0)
        
		 else
		 {
		 	if( (((System_Menu_Struct *)ActiveMenuAdd) -> BitNeedSet) !=3 )
		     {
		     	LED_2 = ((System_Menu_Struct *)ActiveMenuAdd) -> symbolData[1] ;
		     		
		     		
		     	
		     	Float2Led( *(float *)(((System_Menu_Struct *)ActiveMenuAdd) -> dataAdd),LedValue );
		     	LED_3 = LedValue[0]& 0xFF00;
		     	LED_4 = LedValue[1]& 0xFF00;
		     }
		   
         	else
			{
				
				
				Float2Led( *(float *)(((System_Menu_Struct *)ActiveMenuAdd)->dataAdd) ,LedValue);
				LED_2 =  LedValue [0]& 0xFF00;
				LED_3 =  LedValue [1]& 0xFF00;
				LED_4 =  LedValue [2]& 0xFF00;
				
			}
		 
		 }   //end else
         
         
		     	
			
			
			  }
		
		}
		
		
		if( ((System_Menu_Struct *)ActiveMenuAdd)->MenuType == TimeSetting )
		{	
			
			//(&SystemSetting)->minute = 36;
			//byte_write( 0x80,0x0);
			//ii = byte_read(0x81);
			
			if(iii == 1)
			{
				//EX_read_time(&SystemSetting);
				read_time(&SystemSetting);
				iii = 0;
			}	
			iii++;
			
			
			
			switch( TimeSetting_Level )
			{
				case setYear:
				
						
					
					//timeTemp = (*(((int *)(((System_Menu_Struct *)ActiveMenuAdd)->dataAdd))+TimeSetting_Level)) /1000;
					timeTemp = ((&SystemSetting) -> year);
					//timeTemp = ((&SystemSetting) -> year) /1000;
					LED_1 = LedNum[2];
					
					
					//timeTemp =( (*(((int *)(((System_Menu_Struct *)ActiveMenuAdd)->dataAdd))+TimeSetting_Level)) -timeTemp*1000) /100;
					//timeTemp = ( ((&SystemSetting) -> year -timeTemp*1000)) /100;
					LED_2 = LedNum[0];
					
					
					//timeTemp = (*(((int *)(((System_Menu_Struct *)ActiveMenuAdd)->dataAdd))+TimeSetting_Level)) %10;
					timeTemp = ((&SystemSetting) -> year) %10;
					LED_4 = LedNum[timeTemp];
					
					//timeTemp = ((*(((int *)(((System_Menu_Struct *)ActiveMenuAdd)->dataAdd))+TimeSetting_Level)) %100 -timeTemp)/10;
					timeTemp = (   ((&SystemSetting) -> year)  %100 -timeTemp   )/10;
					LED_3 = LedNum[timeTemp];
				break;
				
				
				
				case setDate:
				     /****************************************月份****************************/
					//timeTemp = (*(((int *)(((System_Menu_Struct *)ActiveMenuAdd)->dataAdd))+TimeSetting_Level)) /10;
					timeTemp = ((&SystemSetting) -> month) /10;
					LED_1 = LedNum[timeTemp];
					
					
					//timeTemp = (*(((int *)(((System_Menu_Struct *)ActiveMenuAdd)->dataAdd))+TimeSetting_Level))%10;
					timeTemp = ((&SystemSetting) -> month) %10;
					LED_2 = Numdot[timeTemp];
					
				    /***************************************日期****************************/	
					//timeTemp = (*(((int *)(((System_Menu_Struct *)ActiveMenuAdd)->dataAdd))+TimeSetting_Level + 1 )) /10;
					timeTemp = ((&SystemSetting) -> date) /10;
					LED_3 = LedNum[timeTemp];
					
					//timeTemp = (*(((int *)(((System_Menu_Struct *)ActiveMenuAdd)->dataAdd))+TimeSetting_Level + 1 ))%10;
					timeTemp = ((&SystemSetting) -> date) %10;
					LED_4 = LedNum[timeTemp];
				break;
				
				case setHM:
				    /****************************************小时****************************/
					//timeTemp = (*(((int *)(((System_Menu_Struct *)ActiveMenuAdd)->dataAdd))+TimeSetting_Level+1)) /10;
					timeTemp = ((&SystemSetting) -> hour) /10;
					
					LED_1 = LedNum[timeTemp];
					
					timeTemp = (*(((int *)(((System_Menu_Struct *)ActiveMenuAdd)->dataAdd))+TimeSetting_Level+1))%10;
					timeTemp = ((&SystemSetting) -> hour) %10;
					
					LED_2 = Numdot[timeTemp];
					
				    /***************************************分钟****************************/	
					//timeTemp = (*(((int *)(((System_Menu_Struct *)ActiveMenuAdd)->dataAdd))+TimeSetting_Level + 2 )) /10;
					timeTemp = ((&SystemSetting) -> minute) /10;
					LED_3 = LedNum[timeTemp];
					
					//timeTemp = (*(((int *)(((System_Menu_Struct *)ActiveMenuAdd)->dataAdd))+TimeSetting_Level + 2 ))%10;
					timeTemp = ((&SystemSetting) -> minute) %10;
					LED_4 = LedNum[timeTemp];
				break;
				
				
				case setSecond:
				    /****************************************秒****************************/
					LED_1 = 0;
					LED_2 = dot<<8;
					
				    /*******************************************************************/	
					//timeTemp = (*(((int *)(((System_Menu_Struct *)ActiveMenuAdd)->dataAdd))+TimeSetting_Level + 2 )) /10;
					timeTemp = ((&SystemSetting) -> second) /10;
					LED_3 = LedNum[timeTemp];
					
					//timeTemp = (*(((int *)(((System_Menu_Struct *)ActiveMenuAdd)->dataAdd))+TimeSetting_Level + 2 ))%10;
					timeTemp = ((&SystemSetting) -> second) %10;
					
					LED_4 = LedNum[timeTemp];
				break;
				
				
			}
			Up_Flag = -1;
			Down_Flag = -1;
			
		}
	
			
			
		
		
	}


/****************************设定整定值时的显示*******************/
	if( Func_Select  == Setting )
	{
		
		PreMenuAdd = ActiveMenuAdd;
		ActiveMenuAdd = MenuNode_Scan( Protect_Select, Menu_Level );
		
		if( (U32)ActiveMenuAdd == (U32)(&OverLoad_SubMenu_2))  //过负荷曲线选择
		{
			LED_1 = charq;
			LED_2 = charFdot;
			LED_3 = 0;
			
			LED_4 = LedNum[ (int)*(JDSettingAdd+offset_OverLoad_Type)];
		
		}
		else if( (U32)ActiveMenuAdd == (U32)(&OverHeat_SubMenu_1))  //过负荷曲线选择
		{
			LED_1 = charr;
			LED_2 = charHdot;
			LED_3 = LedNum[ (int)*(JDSettingAdd+offset_OverHeat_TimeType)/10];;
			
			LED_4 = LedNum[ (int)*(JDSettingAdd+offset_OverHeat_TimeType)%10];
		
		}
		
		
		else
		{
		if( Menu_Level == 0)
		{
		
			Bit_NeedSet = ((Menu_Top_Struct *)ActiveMenuAdd)->BitNeedSet;
			Menu_Num = ((Menu_Top_Struct *)ActiveMenuAdd)->MenuNum;	
			LED_1 = ((Menu_Top_Struct *)ActiveMenuAdd) -> symbolData[0] ;
			
			if( ( ((Menu_Top_Struct *)ActiveMenuAdd) -> BitNeedSet) !=3 )
			{
				LED_2 = ((Menu_Top_Struct *)ActiveMenuAdd) -> symbolData[1] ;
			}
			else
			{
				Float2Led( *(((Menu_Top_Struct *)ActiveMenuAdd)->data[0]) ,LedValue);
				LED_2 =LedValue[0] & 0xFE00;   
			}
				
				Float2Led( *(((Menu_Top_Struct *)ActiveMenuAdd)->data[1]),LedValue);
                

				LED_3 =LedValue[0] & 0xFE00;

				Float2Led( *(((Menu_Top_Struct *)ActiveMenuAdd)->data[2]),LedValue);
				LED_4 =LedValue[0]& 0xFE00;
		}

		else
		{
			Bit_NeedSet = ((SubMenu_Struct *)ActiveMenuAdd)->BitNeedSet;				
			LED_1 = ((SubMenu_Struct *)ActiveMenuAdd) -> symbolData[0];

			if( (((SubMenu_Struct *)ActiveMenuAdd) -> BitNeedSet) !=3 )
			{
				LED_2 = ((SubMenu_Struct *)ActiveMenuAdd) -> symbolData[1] ;
				
				if(   (((SubMenu_Struct *)(ActiveMenuAdd)) -> parameter) == TimeValue)
				{
					Float2Led(  (*(((SubMenu_Struct *)ActiveMenuAdd) -> dataAdd))/1000 , LedValue);
				}
				else
				{
					Float2Led( *(((SubMenu_Struct *)ActiveMenuAdd) -> dataAdd),LedValue );
				}
				
				LED_3 = LedValue[0];
				LED_4 = LedValue[1];
			
			
			
			}

			else
			{
				if( (((SubMenu_Struct *)ActiveMenuAdd) -> parameter) == TimeValue)
				{
					Float2Led(  (*(((SubMenu_Struct *)ActiveMenuAdd) -> dataAdd))/1000 , LedValue);
				}
				else
				{
					Float2Led( *(((SubMenu_Struct *)ActiveMenuAdd) -> dataAdd),LedValue );
				}
				LED_2 =  LedValue [0];
				LED_3 =  LedValue [1];
				LED_4 =  LedValue [2];
				
			}
		}
	}
}
		
/****************************************测量时候的显示***************/
	if( Func_Select == Measure )
	{
		if( Protect_Select <10 )
		{
		
			if(calSampleFlag == 1)
			{
				calSampleFlag = 0;
				valuetemp = (*((float *)(*(unsigned long *)(MeasureDisplayData_Add+Protect_Select))));
				
			
				
			    /*
			    xx2 += calSampleNum*calSampleNum;
				y +=valuetemp ;
				x += calSampleNum;
				xy += (valuetemp*calSampleNum) ;
			    x2 = x*x;
			    
			     
			    valueStore[valuetempNum] = valuetemp;
			
				
				
				max = max > valuetemp?max : valuetemp;
				min = min < valuetemp?min : valuetemp;	
				*/
			
				
				//valuetempNum++;
				calSampleNum++;
				//valuetempNum %= 100;
				caltemptemp += valuetemp;
				
				
				
				/*
				
				if((valuetempNum>=2)&&(valuetempNum % 2 == 0))
				{
					caltest1 = valueStore[valuetempNum-2];
					
					if( aa > 0 )
					{
					
						caltest1 = caltest;
					}
					
					caltest2 = valueStore[valuetempNum-1];
					caltest3 = valueStore[valuetempNum];
					
					aa++;
				
				
				
					if(caltest1 >= caltest2)
					{
						if( caltest1 >= caltest3)
						{
							if(caltest2>=caltest3)
							{
								caltest = caltest2;
							}
							else
							{
								caltest = caltest3;
							}		
						}
						else
						{
					
							caltest = caltest1;
						}	
				
					}
					else
					{
						if(caltest2 >= caltest3)
						{
							if( caltest1>=caltest3)
							{
								caltest = caltest1;
							}
							else
							{
								caltest = caltest3;
							}
						
						}
						else
						{
							caltest = caltest2;
						}
				
				
					}
				
					caltemptemp2 += caltest;
				}
				
				
				*/
				
			}
			
			
			
			if( (calSampleNum >= AverageCalNum) || ( ChangeDisplayFlag == 1) )
			{
				
				/*
				
				 b = (xx2*y-x*xy)/(AverageCalNum*xx2-x2);
				
				xx2 =0; 
				y =0;
				x = 0;
				xy = 0; ;
			    x2 = 0;;
			    
				*/
				
				caltemptemp /= calSampleNum; 
				//caltemptemp2 /= aa;
				
				calTemp = caltemptemp;
				//calTemp = caltemptemp2;
				//calTemp = b;
				if( ChangeDisplayFlag == 1 )
				{
					calTemp = 	(*((float *)(*(unsigned long *)(MeasureDisplayData_Add+Protect_Select))));

⌨️ 快捷键说明

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