存档,一块板子可以读写,另一块不可以

This commit is contained in:
吴俊潮 2025-04-02 10:19:41 +08:00
parent f7f5d16292
commit 7d0c8795e1
6 changed files with 16835 additions and 16773 deletions

View File

@ -57,6 +57,7 @@ extern const lv_img_dsc_t * screen_main_ani_out_sign_imgs[3];
#include "stdio.h"
#include "ip5310_i2c.h"
#include "eeprom_spi.h"
#include "math.h"
//#include "lv_demo_benchmark.h"
typedef enum

View File

@ -41,6 +41,7 @@
//my address
//{
#define DEVICE_CHECK 0x0007D0
#define EE_START_ADDR 0x000000
#define EE_INTERVAL 16
@ -90,6 +91,9 @@ void eeprom_datasave(void);
//开机上电后读取参数
void eeprom_dataread(void);
//判断EEPROM内是否已存在数据
uint8_t eeprom_device_check(void);
#endif

View File

@ -211,8 +211,8 @@ void key_functions_main(void)
return;
}
m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
m5data.twk_cnt = 0; //每次按下后闪烁计数清零
// m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
// m5data.twk_cnt = 0; //每次按下后闪烁计数清零
keyset_output(1);
}
@ -319,8 +319,8 @@ void key_functions_main(void)
return;
}
m5data.twk_flag = 1; //上、下、左、右 任意一个键按下后,闪烁开始
m5data.twk_cnt = 0; //每次按下后闪烁计数清零
// m5data.twk_flag = 1; //上、下、左、右 任意一个键按下后,闪烁开始
// m5data.twk_cnt = 0; //每次按下后闪烁计数清零
//避免游标移动的瞬间,前一刻的数值处于闪烁熄灭的状态,移动游标前重新显示一次当前数值
set_nixie_cube(IO_OUTPUT, m5data.io_cursor, m5data.o_numbers[m5data.io_cursor]);
@ -359,8 +359,8 @@ void key_functions_main(void)
return;
}
m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
m5data.twk_cnt = 0; //每次按下后闪烁计数清零
// m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
// m5data.twk_cnt = 0; //每次按下后闪烁计数清零
//避免游标移动的瞬间,前一刻的数值处于闪烁熄灭的状态,移动游标前重新显示一次当前数值
set_nixie_cube(IO_OUTPUT, m5data.io_cursor, m5data.o_numbers[m5data.io_cursor]);
@ -515,8 +515,8 @@ void key_functions_main(void)
return;
}
m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
m5data.twk_cnt = 0; //每次按下后闪烁计数清零
// m5data.twk_flag = 1; // 上、下、左、右 任意一个键按下后,闪烁开始
// m5data.twk_cnt = 0; //每次按下后闪烁计数清零
keyset_output(-1);
}
@ -587,6 +587,7 @@ void scr_init_run(void)
}
}
//uint8_t ee_status_test = 0;
void scr_main_run(void)
{
//实时更新设定值
@ -605,7 +606,20 @@ void scr_main_run(void)
input_value_show(); //500ms
//数值闪烁
num_twinkle(); //1000ms
//num_twinkle(); //1000ms
// EEPROM_CS_L;
// delay_cnt(10);
// eeprom_spi_writebyte(WRITE_ENABLE);
// delay_cnt(10);
// EEPROM_CS_H;
// EEPROM_CS_L;
// delay_cnt(10);
// eeprom_spi_writebyte(READ_STATUS);
// ee_status_test = eeprom_spi_readbyte();
// delay_cnt(10);
// EEPROM_CS_H;
}
void runtime_show(void)
@ -1040,6 +1054,7 @@ void set_output(float32 sto)
//乘以1000用于绕开 int32 和 float32 之间的转换
sto *= 1000;
sto = round(sto);
//更新缓存
set_output_array(sto);
@ -1209,6 +1224,9 @@ void num_twinkle(void) //数值闪烁
if(m5data.twk_flag == 0)
{
//不需要闪烁的情况下直接返回
//防止空白残留
set_nixie_cube(IO_OUTPUT, m5data.io_cursor, m5data.o_numbers[ m5data.io_cursor ]);
return;
}
else
@ -1366,9 +1384,9 @@ void set_working_mode(SIG_FUNCTIONS mode, SIG_FUNCTIONS_TYPE type)
set_cursor_position();
//闪烁参数清零
m5data.twk_flag = 0; //闪烁中止
m5data.twk_cnt = 0; //闪烁计数清零
m5data.twk_flip = 0; //0显示1不显示
// m5data.twk_flag = 0; //闪烁中止
// m5data.twk_cnt = 0; //闪烁计数清零
// m5data.twk_flip = 0; //0显示1不显示
//}
switch (mode)

View File

@ -31,10 +31,23 @@ void item0_data_init(void)
tabdata.item0_page0_vunit = VOLTAGE_V; //电压单位
tabdata.item0_page1_TCtype = TC_K; //默认为K类型的热电偶
if(tabdata.item1_page0_resetflag != 1)
{
//判断eeprom内是否存在数据
if(eeprom_device_check() == 1)
{
eeprom_dataread();
}
else
{
return;
}
}
//eeprom_rd_error_flag = 1;
//读取过程中出现过错误
if( eeprom_rd_error_flag )
if( (eeprom_rd_error_flag == 1)||(tabdata.item1_page0_resetflag == 1) )
{
tabdata.item0_page0_vup[0] = VOL[0].up; //电压V上限
tabdata.item0_page0_vlow[0] = VOL[0].low; //电压V下限
@ -1844,6 +1857,10 @@ void scr_setting_run(void) //详细设置界面
tabdata.item1_page0_resetflag = 2;
set_item1_text(DATA_RESET);
tabdata.item1_page0_saveflag = 0;
set_item1_text(DATA_SAVE);
}
}

View File

@ -510,4 +510,58 @@ void eeprom_dataread(void)
tabdata.item0_page2_RTDlow = ( temp_h << 8 ) + temp_l;
}
//判断EEPROM内是否已存在数据
uint8_t eeprom_device_check(void)
{
uint8_t device_status_h = 0, device_status_l = 0;
int dev_sts = 0;
device_status_h = eeprom_readdata(DEVICE_CHECK);
device_status_l = eeprom_readdata(DEVICE_CHECK + 8);
dev_sts = (device_status_h << 8) + device_status_l;
if(dev_sts != 0xAAAA)
{
tabdata.item0_page0_vup[0] = VOL[0].up; //电压V上限
tabdata.item0_page0_vlow[0] = VOL[0].low; //电压V下限
tabdata.item0_page0_vup[1] = VOL[1].up; //电压mV上限
tabdata.item0_page0_vlow[1] = VOL[1].low; //电压mV下限
tabdata.item0_page0_cup = CUR.up; //电流上限
tabdata.item0_page0_clow = CUR.low; //电流下限
tabdata.item0_page0_rup = RES.up; //电阻上限
tabdata.item0_page1_rlow = RES.low; //电阻下限
tabdata.item0_page1_fup = FRE.up; //频率上限
tabdata.item0_page1_flow = FRE.low; //频率下限
tabdata.item0_page1_TCup[0] = TC[0].up; //TCK上限
tabdata.item0_page1_TClow[0] = TC[0].low; //TCK下限
tabdata.item0_page1_TCup[1] = TC[1].up; //TCS上限
tabdata.item0_page1_TClow[1] = TC[1].low; //TCS下限
tabdata.item0_page1_TCup[2] = TC[2].up; //TCN上限
tabdata.item0_page1_TClow[2] = TC[2].low; //TCN下限
tabdata.item0_page1_TCup[3] = TC[3].up; //TCB上限
tabdata.item0_page1_TClow[3] = TC[3].low; //TCB下限
tabdata.item0_page1_TCup[4] = TC[4].up; //TCE上限
tabdata.item0_page1_TClow[4] = TC[4].low; //TCE下限
tabdata.item0_page1_TCup[5] = TC[5].up; //TCJ上限
tabdata.item0_page1_TClow[5] = TC[5].low; //TCJ下限
tabdata.item0_page1_TCup[6] = TC[6].up; //TCR上限
tabdata.item0_page1_TClow[6] = TC[6].low; //TCR下限
tabdata.item0_page1_TCup[7] = TC[7].up; //TCT上限
tabdata.item0_page1_TClow[7] = TC[7].low; //TCT下限
tabdata.item0_page2_RTDup = RTD.up; //RTD上限
tabdata.item0_page2_RTDlow = RTD.low; //RTD下限
eeprom_datasave();
eeprom_writedata(DEVICE_CHECK, 0xAA);
eeprom_writedata(DEVICE_CHECK + 8, 0xAA);
return 0;
}
else
{
return 1;
}
}

File diff suppressed because it is too large Load Diff