📄 uifunction.c
字号:
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 + -