859 lines
20 KiB
C
859 lines
20 KiB
C
#include "apps_gather.h" //用于头文件打包汇总,函数声明和变量定义
|
||
// lv_conf.h { line:282->CPU&FPS; line:289->MEM used }
|
||
|
||
OPERATIONS current_operation;
|
||
PHYSICAL_QUANTITY VOL[2]; //电压,VOL[0]-V, VOL[1]-mV
|
||
PHYSICAL_QUANTITY CUR; //电流,mA
|
||
PHYSICAL_QUANTITY RES; //电阻,Ω
|
||
PHYSICAL_QUANTITY FRE; //频率,KHz
|
||
PHYSICAL_QUANTITY TC[8]; //热电偶,共8种
|
||
PHYSICAL_QUANTITY RTD; //热电阻
|
||
SYSTEM_STATUS_WATCH system_sts; //系统状态监控
|
||
SIG_TRANSMISSION sig_trans = TRANS_NONE; //通讯模式
|
||
|
||
// 热电偶真值表,电压mV
|
||
// 行:[0,7]->[K, S, N, B, E, J, R, T],列:[0,10]->[mV_Tmin,...,mV_Tmax](均分成10个间隔,11个端点)
|
||
static float32 TC_TABLE_MV[8][11] =
|
||
{
|
||
{-6.458, -3.734, 2.354, 9.061, 15.849, 22.819, 29.757, 36.484, 42.980, 49.130, 54.886},
|
||
{-0.236, 0.888, 2.451, 4.184, 6.034, 7.992, 10.063, 12.228, 14.421, 16.611, 18.693},
|
||
{-4.345, -2.672, 1.174, 5.946, 11.428, 17.323, 23.428, 29.592, 35.714, 41.713, 47.513},
|
||
{0.000, 0.144, 0.647, 1.483, 2.625, 4.041, 5.702, 7.567, 9.593, 11.708, 13.820},
|
||
{-9.835, -7.021, -0.925, 7.066, 16.269, 26.154, 36.358, 46.624, 56.764, 66.705, 76.373},
|
||
{-8.095, -3.300, 3.757, 11.501, 19.311, 27.113, 35.230, 44.010, 52.996, 61.415, 69.553},
|
||
{-0.226, 0.895, 2.538, 4.417, 6.472, 8.685, 11.052, 13.549, 16.097, 18.654, 21.101},
|
||
{-6.258, -5.650, -4.324, -2.444, -0.077, 2.687, 5.812, 9.235, 12.912, 16.802, 20.872}
|
||
};
|
||
|
||
//热电偶真值表,温度℃
|
||
// 行:[0,7]->[K, S, N, B, E, J, R, T],列:[0,10]->[Tmin,...,Tmax](均分成10个间隔,11个端点)
|
||
static float32 TC_TABLE_TEMP[8][11] =
|
||
{
|
||
{-270.0, -105.8, 58.4, 222.6, 386.8, 551.0, 715.2, 879.4, 1043.6, 1207.8, 1372.0},
|
||
{-50.0, 131.8, 313.6, 495.4, 677.2, 859.0, 1040.8, 1222.6, 1404.4, 1586.2, 1768.0},
|
||
{-270.0, -113.0, 44.0, 201.0, 358.0, 515.0, 672.0, 829.0, 986.0, 1143.0, 1300.0},
|
||
{0.0, 182.0, 364.0, 546.0, 728.0, 910.0, 1092.0, 1274.0, 1456.0, 1638.0, 1820.0},
|
||
{-270.0, -143.0, -16.0, 111.0, 238.0, 365.0, 492.0, 619.0, 746.0, 873.0, 1000.0},
|
||
{-210.0, -69.0, 72.0, 213.0, 354.0, 495.0, 636.0, 777.0, 918.0, 1059.0, 1200.0},
|
||
{-50.0, 131.8, 313.6, 495.4, 677.2, 859.0, 1040.8, 1222.6, 1404.4, 1586.2, 1768.0},
|
||
{-270.0, -203.0, -136.0, -69.0, -2.0, 65.0, 132.0, 199.0, 266.0, 333.0, 400.0}
|
||
};
|
||
|
||
//热电阻真值表,温度℃
|
||
static float32 RTD_TABLE_TEMP[11] = {-200, -114, -28, 58, 144, 230, 316, 402, 488, 574, 660};
|
||
|
||
//热电阻真值表,电阻Ω
|
||
static float32 RTD_TABLE_OHM[11] = {18.52, 54.97, 89.01, 122.47, 155.08, 186.84, 217.74, 247.78, 276.97, 305.31, 332.79};
|
||
|
||
//热电偶数据初始化
|
||
void TC_init(void)
|
||
{
|
||
//热电偶K
|
||
TC[0].tag = SIG_TC;
|
||
TC[0].typ = TC_K;
|
||
TC[0].low = TC_TABLE_TEMP[0][0];
|
||
TC[0].up = TC_TABLE_TEMP[0][10];
|
||
TC[0].pv = 0;
|
||
|
||
//热电偶S
|
||
TC[1].tag = SIG_TC;
|
||
TC[1].typ = TC_S;
|
||
TC[1].low = TC_TABLE_TEMP[1][0];
|
||
TC[1].up = TC_TABLE_TEMP[1][10];
|
||
TC[1].pv = 0;
|
||
|
||
//热电偶N
|
||
TC[2].tag = SIG_TC;
|
||
TC[2].typ = TC_N;
|
||
TC[2].low = TC_TABLE_TEMP[2][0];
|
||
TC[2].up = TC_TABLE_TEMP[2][10];
|
||
TC[2].pv = 0;
|
||
|
||
//热电偶B
|
||
TC[3].tag = SIG_TC;
|
||
TC[3].typ = TC_B;
|
||
TC[3].low = TC_TABLE_TEMP[3][0];;
|
||
TC[3].up = TC_TABLE_TEMP[3][10];;
|
||
TC[3].pv = 0;
|
||
|
||
//热电偶E
|
||
TC[4].tag = SIG_TC;
|
||
TC[4].typ = TC_E;
|
||
TC[4].low = TC_TABLE_TEMP[4][0];
|
||
TC[4].up = TC_TABLE_TEMP[4][10];
|
||
TC[4].pv = 0;
|
||
|
||
//热电偶J
|
||
TC[5].tag = SIG_TC;
|
||
TC[5].typ = TC_J;
|
||
TC[5].low = TC_TABLE_TEMP[5][0];
|
||
TC[5].up = TC_TABLE_TEMP[5][10];
|
||
TC[5].pv = 0;
|
||
|
||
//热电偶R
|
||
TC[6].tag = SIG_TC;
|
||
TC[6].typ = TC_R;
|
||
TC[6].low = TC_TABLE_TEMP[6][0];
|
||
TC[6].up = TC_TABLE_TEMP[6][10];
|
||
TC[6].pv = 0;
|
||
|
||
//热电偶T
|
||
TC[7].tag = SIG_TC;
|
||
TC[7].typ = TC_T;
|
||
TC[7].low = TC_TABLE_TEMP[7][0];
|
||
TC[7].up = TC_TABLE_TEMP[7][10];
|
||
TC[7].pv = 0;
|
||
}
|
||
|
||
//物理量内容初始化
|
||
//底层数据,无法通过按键&菜单修改,用户使用时,仅修改tabdata里的变量
|
||
void physical_quantity_init(void)
|
||
{
|
||
VOL[0].tag = SIG_VOLTAGE;
|
||
VOL[0].typ = VOLTAGE_V;
|
||
VOL[0].low = 0;
|
||
VOL[0].up = 30;
|
||
VOL[0].pv = 0;
|
||
|
||
VOL[1].tag = SIG_VOLTAGE;
|
||
VOL[1].typ = VOLTAGE_MV;
|
||
VOL[1].low = -2500;
|
||
VOL[1].up = 2500;
|
||
VOL[1].pv = 0;
|
||
|
||
CUR.tag = SIG_CURRENT;
|
||
CUR.typ = CURRENT_MA;
|
||
CUR.low = 0;
|
||
CUR.up = 25;
|
||
CUR.pv = 0;
|
||
|
||
RES.tag = SIG_RESISTANT;
|
||
RES.typ = RESISTANT_OHM;
|
||
RES.low = 0;
|
||
RES.up = 4000;
|
||
RES.pv = 0;
|
||
|
||
FRE.tag = SIG_FREQUENCE;
|
||
FRE.typ = FREQUENCE_KHZ;
|
||
FRE.low = 0;
|
||
FRE.up = 100;
|
||
FRE.pv = 0;
|
||
|
||
TC_init();
|
||
|
||
RTD.tag = SIG_RTD;
|
||
RTD.typ = RTD_DC;
|
||
RTD.low = RTD_TABLE_TEMP[0];
|
||
RTD.up = RTD_TABLE_TEMP[10];
|
||
RTD.pv = 0;
|
||
}
|
||
|
||
void screen_run(void)
|
||
{
|
||
//手动触发显示内容复位
|
||
if(m5data.menu_reset_flag)
|
||
{
|
||
menu_reset();
|
||
|
||
m5data.menu_reset_flag = 0;
|
||
|
||
return;
|
||
}
|
||
|
||
if(m5data.scr_init_flag == 0)
|
||
{
|
||
//未播放过开机动画的情况下,播放开机动画
|
||
scr_init_run();
|
||
}
|
||
else
|
||
{
|
||
//播放过开机动画之后,跳转至主界面
|
||
switch (m5data.scr_now)
|
||
{
|
||
case SCREEN_MAIN:
|
||
{
|
||
scr_main_run(); //主界面显示
|
||
key_functions_main(); //主界面的按键功能
|
||
}
|
||
break;
|
||
|
||
case SCREEN_SETTING:
|
||
{
|
||
scr_setting_run(); //设置界面
|
||
key_functions_setting(); //设置界面的按键功能
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
//通道选择与切换
|
||
void sig_channel_select(uint8_t io, SIG_FUNCTIONS_TYPE type)
|
||
{
|
||
switch (io)
|
||
{
|
||
case IO_INPUT:
|
||
{
|
||
switch (type)
|
||
{
|
||
case VOLTAGE_MV:
|
||
{
|
||
mux_signal.channel = CH7_IN_MVOL;
|
||
}
|
||
break;
|
||
|
||
case VOLTAGE_V:
|
||
{
|
||
mux_signal.channel = CH6_IN_VOL;
|
||
}
|
||
break;
|
||
|
||
case CURRENT_MA:
|
||
{
|
||
mux_signal.channel = CH8_IN_CUR;
|
||
}
|
||
break;
|
||
|
||
case RESISTANT_OHM:
|
||
{
|
||
//与热电阻一致
|
||
mux_signal.channel = CH10_IN_RTD;
|
||
}
|
||
break;
|
||
|
||
case FREQUENCE_KHZ:
|
||
{
|
||
mux_signal.channel = CH9_IN_FRE;
|
||
}
|
||
break;
|
||
|
||
case TC_K:
|
||
{
|
||
mux_signal.channel = CH11_IN_TC;
|
||
}
|
||
break;
|
||
|
||
case TC_S:
|
||
{
|
||
mux_signal.channel = CH11_IN_TC;
|
||
}
|
||
break;
|
||
|
||
case TC_N:
|
||
{
|
||
mux_signal.channel = CH11_IN_TC;
|
||
}
|
||
break;
|
||
|
||
case TC_B:
|
||
{
|
||
mux_signal.channel = CH11_IN_TC;
|
||
}
|
||
break;
|
||
|
||
case TC_E:
|
||
{
|
||
mux_signal.channel = CH11_IN_TC;
|
||
}
|
||
break;
|
||
|
||
case TC_J:
|
||
{
|
||
mux_signal.channel = CH11_IN_TC;
|
||
}
|
||
break;
|
||
|
||
case TC_R:
|
||
{
|
||
mux_signal.channel = CH11_IN_TC;
|
||
}
|
||
break;
|
||
|
||
case TC_T:
|
||
{
|
||
mux_signal.channel = CH11_IN_TC;
|
||
}
|
||
break;
|
||
|
||
case RTD_DC:
|
||
{
|
||
mux_signal.channel = CH10_IN_RTD;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case IO_OUTPUT:
|
||
{
|
||
switch (type)
|
||
{
|
||
case VOLTAGE_MV:
|
||
{
|
||
mux_signal.channel = CH1_OUT_VOL_MV;
|
||
}
|
||
break;
|
||
|
||
case VOLTAGE_V:
|
||
{
|
||
mux_signal.channel = CH0_OUT_VOL_V;
|
||
}
|
||
break;
|
||
|
||
case CURRENT_MA:
|
||
{
|
||
mux_signal.channel = CH2_OUT_CUR;
|
||
}
|
||
break;
|
||
|
||
case RESISTANT_OHM:
|
||
{
|
||
mux_signal.channel = CH4_OUT_RES;
|
||
}
|
||
break;
|
||
|
||
case FREQUENCE_KHZ:
|
||
{
|
||
mux_signal.channel = CH3_OUT_FRE;
|
||
}
|
||
break;
|
||
|
||
case TC_K:
|
||
{
|
||
mux_signal.channel = CH1_OUT_VOL_MV;
|
||
}
|
||
break;
|
||
|
||
case TC_S:
|
||
{
|
||
mux_signal.channel = CH1_OUT_VOL_MV;
|
||
}
|
||
break;
|
||
|
||
case TC_N:
|
||
{
|
||
mux_signal.channel = CH1_OUT_VOL_MV;
|
||
}
|
||
break;
|
||
|
||
case TC_B:
|
||
{
|
||
mux_signal.channel = CH1_OUT_VOL_MV;
|
||
}
|
||
break;
|
||
|
||
case TC_E:
|
||
{
|
||
mux_signal.channel = CH1_OUT_VOL_MV;
|
||
}
|
||
break;
|
||
|
||
case TC_J:
|
||
{
|
||
mux_signal.channel = CH1_OUT_VOL_MV;
|
||
}
|
||
break;
|
||
|
||
case TC_R:
|
||
{
|
||
mux_signal.channel = CH1_OUT_VOL_MV;
|
||
}
|
||
break;
|
||
|
||
case TC_T:
|
||
{
|
||
mux_signal.channel = CH1_OUT_VOL_MV;
|
||
}
|
||
break;
|
||
|
||
case RTD_DC:
|
||
{
|
||
mux_signal.channel = CH4_OUT_RES;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
//更新设定值(根据ON\OFF状态)
|
||
void sig_sv_update(void)
|
||
{
|
||
switch (m5data.io_on2off)
|
||
{
|
||
case IO_ON:
|
||
{
|
||
mux_signal.data_sv = real2mux( get_output_value() );
|
||
}
|
||
break;
|
||
|
||
case IO_OFF:
|
||
{
|
||
mux_signal.data_sv = 0;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
//数据转换,将输入热电偶电压值转换为实际温度值℃
|
||
float32 tcmv2temp(SIG_FUNCTIONS_TYPE type, float32 mv)
|
||
{
|
||
float32 result_temp = 0;
|
||
uint8_t typ = 0, i = 0;
|
||
typ = (uint8_t)type;
|
||
typ -= 5; //[5,12]->[0,7]
|
||
|
||
float32 mv_left = 0, mv_right = 0;
|
||
float32 temp_left = 0, temp_right = 0;
|
||
|
||
for(i = 0; i < 10; i++)
|
||
{
|
||
if( ( TC_TABLE_MV[typ][i] <= mv )&&( mv < TC_TABLE_MV[typ][i + 1] ) )
|
||
{
|
||
mv_left = TC_TABLE_MV[typ][i];
|
||
mv_right = TC_TABLE_MV[typ][i + 1];
|
||
temp_left = TC_TABLE_TEMP[typ][i];
|
||
temp_right = TC_TABLE_TEMP[typ][i + 1];
|
||
|
||
result_temp = temp_left + ( temp_right - temp_left )*\
|
||
( mv - mv_left )/( mv_right - mv_left);
|
||
|
||
return result_temp;
|
||
}
|
||
}
|
||
|
||
//ERROR
|
||
return -999;
|
||
}
|
||
|
||
//数据转换,将需要模拟的温度值℃转化为热电偶对应的mv
|
||
float32 temp2tcmv(SIG_FUNCTIONS_TYPE type, float32 temp)
|
||
{
|
||
float32 result_mv = 0;
|
||
uint8_t typ = 0, i = 0;
|
||
typ = (uint8_t)type;
|
||
typ -= 5; //[5,12]->[0,7]
|
||
|
||
float32 mv_left = 0, mv_right = 0;
|
||
float32 temp_left = 0, temp_right = 0;
|
||
|
||
for(i = 0; i < 10; i++)
|
||
{
|
||
if( ( TC_TABLE_TEMP[typ][i] <= temp )&&( temp < TC_TABLE_TEMP[typ][i + 1] ) )
|
||
{
|
||
mv_left = TC_TABLE_MV[typ][i];
|
||
mv_right = TC_TABLE_MV[typ][i + 1];
|
||
temp_left = TC_TABLE_TEMP[typ][i];
|
||
temp_right = TC_TABLE_TEMP[typ][i + 1];
|
||
|
||
result_mv = mv_left + ( mv_right - mv_left )*\
|
||
( temp - temp_left )/( temp_right - temp_left);
|
||
|
||
return result_mv;
|
||
}
|
||
}
|
||
|
||
//ERROR
|
||
return -999;
|
||
}
|
||
|
||
//数据转换,mux_signal.pv -> real_value
|
||
float32 mux2real(float32 mux_pv)
|
||
{
|
||
float32 result = 0;
|
||
SIG_FUNCTIONS mode;
|
||
SIG_FUNCTIONS_TYPE type;
|
||
|
||
switch (m5data.io_mode)
|
||
{
|
||
case IO_INPUT:
|
||
{
|
||
mode = m5data.input_mode;
|
||
type = m5data.input_mode_type;
|
||
}
|
||
break;
|
||
|
||
case IO_OUTPUT:
|
||
{
|
||
mode = m5data.output_mode;
|
||
type = m5data.output_mode_type;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
switch (mode)
|
||
{
|
||
//电压
|
||
case SIG_VOLTAGE:
|
||
{
|
||
switch (type)
|
||
{
|
||
// mV 输入已处理,无需乘以1000
|
||
case VOLTAGE_MV:
|
||
{
|
||
result = mux_pv;
|
||
}
|
||
break;
|
||
|
||
//1:1
|
||
case VOLTAGE_V:
|
||
{
|
||
result = mux_pv;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
}
|
||
break;
|
||
|
||
//电流
|
||
case SIG_CURRENT:
|
||
{
|
||
switch (type)
|
||
{
|
||
//1:1
|
||
case CURRENT_MA:
|
||
{
|
||
result = mux_pv;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
//电阻
|
||
case SIG_RESISTANT:
|
||
{
|
||
switch (type)
|
||
{
|
||
case RESISTANT_OHM:
|
||
{
|
||
result = mux_pv;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
//频率
|
||
case SIG_FREQUENCE:
|
||
{
|
||
switch (type)
|
||
{
|
||
case FREQUENCE_KHZ:
|
||
{
|
||
//Hz -> KHz
|
||
result = mux_pv / 1000;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
//热电偶
|
||
case SIG_TC:
|
||
{
|
||
result = tcmv2temp(type, mux_pv);
|
||
}
|
||
break;
|
||
|
||
//热电阻
|
||
case SIG_RTD:
|
||
{
|
||
switch (type)
|
||
{
|
||
case RTD_DC:
|
||
{
|
||
result = ohm2temp(mux_pv);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
return result;
|
||
}
|
||
|
||
|
||
|
||
|
||
//数据转换,real_value -> mux_signal.sv
|
||
//float32 r2m_test_in = 0, r2m_test_out = 0;
|
||
float32 real2mux(float32 real_value)
|
||
{
|
||
float32 result = 0;
|
||
|
||
SIG_FUNCTIONS mode;
|
||
SIG_FUNCTIONS_TYPE type;
|
||
|
||
switch (m5data.io_mode)
|
||
{
|
||
case IO_INPUT:
|
||
{
|
||
mode = m5data.input_mode;
|
||
type = m5data.input_mode_type;
|
||
}
|
||
break;
|
||
|
||
case IO_OUTPUT:
|
||
{
|
||
mode = m5data.output_mode;
|
||
type = m5data.output_mode_type;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
switch (mode)
|
||
{
|
||
//电压
|
||
case SIG_VOLTAGE:
|
||
{
|
||
switch (type)
|
||
{
|
||
//[-2500mV, 2500mV] -> [-2.5V, 2.5V]
|
||
case VOLTAGE_MV:
|
||
{
|
||
result = real_value / (float32)1000;
|
||
}
|
||
break;
|
||
|
||
//1:1
|
||
case VOLTAGE_V:
|
||
{
|
||
result = real_value;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
}
|
||
break;
|
||
|
||
//电流
|
||
case SIG_CURRENT:
|
||
{
|
||
switch (type)
|
||
{
|
||
//1:1
|
||
case CURRENT_MA:
|
||
{
|
||
result = real_value;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
//电阻
|
||
case SIG_RESISTANT:
|
||
{
|
||
switch (type)
|
||
{
|
||
case RESISTANT_OHM:
|
||
{
|
||
result = real_value;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
//频率
|
||
case SIG_FREQUENCE:
|
||
{
|
||
switch (type)
|
||
{
|
||
case FREQUENCE_KHZ:
|
||
{
|
||
//KHz -> Hz
|
||
result = real_value * 1000;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
//热电偶
|
||
case SIG_TC:
|
||
{
|
||
result = temp2tcmv(type, real_value);
|
||
//r2m_test_out = temp2tcmv(type, r2m_test_in);
|
||
}
|
||
break;
|
||
|
||
//热电阻
|
||
case SIG_RTD:
|
||
{
|
||
switch (type)
|
||
{
|
||
case RTD_DC:
|
||
{
|
||
result = temp2ohm(real_value);
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
return result;
|
||
}
|
||
|
||
//数据转换,热电阻阻值 Ω 转化为温度 ℃
|
||
float32 ohm2temp(float32 ohm)
|
||
{
|
||
float32 result = 0;
|
||
|
||
for(uint8_t i = 0;i < 10; i++)
|
||
{
|
||
if( ( RTD_TABLE_OHM[i] <= ohm ) && ( ohm <= RTD_TABLE_OHM[i + 1] ) )
|
||
{
|
||
result = RTD_TABLE_TEMP[i] + ( RTD_TABLE_TEMP[i + 1] - RTD_TABLE_TEMP[i] ) *\
|
||
( ( ohm - RTD_TABLE_OHM[i] ) / ( RTD_TABLE_OHM[i + 1] - RTD_TABLE_OHM[i] ) );
|
||
|
||
return result;
|
||
}
|
||
}
|
||
|
||
return 0;
|
||
}
|
||
|
||
//数据转换,温度 ℃ 转化为热电阻阻值 Ω
|
||
float32 temp2ohm(float32 temp)
|
||
{
|
||
float32 result = 0;
|
||
|
||
for(uint8_t i = 0;i < 10; i++)
|
||
{
|
||
if( ( RTD_TABLE_TEMP[i] <= temp ) && ( temp <= RTD_TABLE_TEMP[i + 1] ) )
|
||
{
|
||
result = RTD_TABLE_OHM[i] + ( RTD_TABLE_OHM[i + 1] - RTD_TABLE_OHM[i] ) *\
|
||
( ( temp - RTD_TABLE_TEMP[i] ) / ( RTD_TABLE_TEMP[i + 1] - RTD_TABLE_TEMP[i] ) );
|
||
|
||
return result;
|
||
}
|
||
}
|
||
|
||
return 0;
|
||
}
|
||
|
||
//计算a的b次方
|
||
float32 my_power(int a, int b)
|
||
{
|
||
if(a == 0)
|
||
{
|
||
return 0;
|
||
}
|
||
|
||
if(b == 0)
|
||
{
|
||
return 1;
|
||
}
|
||
|
||
float32 result = 1;
|
||
|
||
if( b > 0 )
|
||
{
|
||
for(uint8_t i = 0; i < b; i++)
|
||
{
|
||
result *= a;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
for(uint8_t i = 0; i < (-b); i++)
|
||
{
|
||
result /= (float32)a;
|
||
}
|
||
}
|
||
return result;
|
||
}
|
||
|
||
//初始化打包
|
||
void my_inits_gather(void)
|
||
{
|
||
//HART复位关闭
|
||
HART_RESET(GPIO_PIN_SET);
|
||
//HART默认接收
|
||
HART_RTS(RTS_OFF);
|
||
|
||
//eeprom
|
||
eeprom_spi_init();
|
||
|
||
//按键扫描
|
||
tm1650_init(&hi2c1);
|
||
|
||
//LVGL
|
||
lv_init(); // LVGL 初始化
|
||
lv_port_disp_init(); // 注册LVGL的显示任务初始化
|
||
// lv_demo_benchmark(); //lv_conf.h, line:761
|
||
setup_ui(&guider_ui); // 初始化UI,设置与加载初始界面
|
||
events_init(&guider_ui); // 初始化事件
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|