📄 modify.c
字号:
Press_Adjust_state=ReadWord(Adjust_state);
// Press_Adjust_state=2;
if(Press_Adjust_state==0x01)
{
PGA_Plus=ReadWord(AD_PGA_Plus);
PGA_Plus=ADS1240_GAIN_8;
//=============================================
//读取零点校正值
//=============================================
for(i=0;i<4;i++)
{
char_bar[i]=ReadWord(Press_Zero+i);
// Zero_data=ReadWord(Press_Zero);
}
Zero_data=0;
Zero_data=(Zero_data+(unsigned long)char_bar[3])<<8;
Zero_data=(Zero_data+(unsigned long)char_bar[2])<<8;
Zero_data=(Zero_data+(unsigned long)char_bar[1])<<8;
Zero_data=(Zero_data+(unsigned long)char_bar[0]);
for(i=0;i<4;i++)
{
char_bar[i]=ReadWord(Press_Zero_Sampling_AD+i);
}
Zero_Sampling_AD=0;
Zero_Sampling_AD=(Zero_Sampling_AD+(unsigned long)char_bar[3])<<8;
Zero_Sampling_AD=(Zero_Sampling_AD+(unsigned long)char_bar[2])<<8;
Zero_Sampling_AD=(Zero_Sampling_AD+(unsigned long)char_bar[1])<<8;
Zero_Sampling_AD=(Zero_Sampling_AD+(unsigned long)char_bar[0]);
//Initial_Resistance=(float)Zero_Sampling_AD/16;
//Initial_Resistance=Initial_Resistance*3000;
// Initial_Resistance=Initial_Resistance/16777216;
//=============================================
//读取满程校正值
//=============================================
for(i=0;i<4;i++)
{
char_bar[i]=ReadWord(Press_Most+i);
// Zero_data=ReadWord(Press_Zero);
}
Most_data=0;
Most_data=(Most_data+(unsigned long)char_bar[3])<<8;
Most_data=(Most_data+(unsigned long)char_bar[2])<<8;
Most_data=(Most_data+(unsigned long)char_bar[1])<<8;
Most_data=(Most_data+(unsigned long)char_bar[0]);
for(i=0;i<4;i++)
{
char_bar[i]=ReadWord(Press_Most_Sampling_AD+i);
}
Most_Sampling_AD=0;
Most_Sampling_AD=(Most_Sampling_AD+(unsigned long)char_bar[3])<<8;
Most_Sampling_AD=(Most_Sampling_AD+(unsigned long)char_bar[2])<<8;
Most_Sampling_AD=(Most_Sampling_AD+(unsigned long)char_bar[1])<<8;
Most_Sampling_AD=(Most_Sampling_AD+(unsigned long)char_bar[0]);
//k=((float)(Most_Sampling_AD-Zero_Sampling_AD))/16;
//k=k*3000;
// k=k/16777216;
//Zero_Most_k=(Most_data-Zero_data)/k;
// Zero_Most_Revise_Flag=1;
//=============================================
//读取满程校正值
//=============================================
Most_decimal_num=ReadWord(Press_Most_decimal);
//=============================================
//读取线性校正值数量
//=============================================
line_modify_num=ReadWord(Press_line_modify_num);
//=============================================
//读取线性校正值
//=============================================
for(i=0;i<line_modify_num;i++)
{
for(j=0;j<4;j++)
{
char_bar[j]=ReadWord(Press_Standard+i*8+j);
// Zero_data=ReadWord(Press_Zero);
}
Standard_Press[i]=0;
Standard_Press[i]=(Standard_Press[i]+(unsigned long)char_bar[3])<<8;
Standard_Press[i]=(Standard_Press[i]+(unsigned long)char_bar[2])<<8;
Standard_Press[i]=(Standard_Press[i]+(unsigned long)char_bar[1])<<8;
Standard_Press[i]=(Standard_Press[i]+(unsigned long)char_bar[0]);
for(j=0;j<4;j++)
{
char_bar[j]=ReadWord(Press_Measure+i*8+j);
// Zero_data=ReadWord(Press_Zero);
}
Measure_Press[i]=0;
Measure_Press[i]=(Measure_Press[i]+(unsigned long)char_bar[3])<<8;
Measure_Press[i]=(Measure_Press[i]+(unsigned long)char_bar[2])<<8;
Measure_Press[i]=(Measure_Press[i]+(unsigned long)char_bar[1])<<8;
Measure_Press[i]=(Measure_Press[i]+(unsigned long)char_bar[0]);
}
Most_Flag=ReadWord(Press_Most_Flag);
}
else
{//各参数的默认值
PGA_Plus=ADS1240_GAIN_8;
Zero_data=0x00;
Most_data=0xbb8;//3000
Most_decimal_num=0x04;
line_modify_num=0x00;
Most_Flag=0x00;
}
//校正模式
//========================================================================================
//校正密码验证
//========================================================================================
LCD_NUM=6;
/*if(!password_ok_flag)
Password_check(); */
rest_LCD_data();
Zero_modify_ok=0;
key_data=0;
//========================================================================================
// 零点校正
//========================================================================================
Zero_Most_Revise_Flag=0;
Open_WatchDog();
while(!Zero_modify_ok)
{
init_port();
En_key_INT();
_BIS_SR(LPM3_bits + GIE); // Enter LPM3
_NOP();
_NOP();
if(key_data==0x01)
Zero_modify_ok=1;
if(ad_flag==1)
{
Show_AD_Data(); //ad1240
ad_flag=0;
}
}
Close_WatchDog();
Zero_Sampling_AD=ad1240;
Save_AD_Data(&Zero_Sampling_AD,Press_Zero_Sampling_AD);
//Initial_Resistance=(float)Zero_Sampling_AD/PGA_Plus;
// Initial_Resistance=Initial_Resistance*3000;
// Initial_Resistance=Initial_Resistance/16777216;
key_data=0;
Zero_modify_ok=0;
rest_LCD_data();
set_lcd_out();
while(!Zero_modify_ok)
{
Zero_modify_ok=get_key_bar(LCD_Key_bar);
}
Save_key_data(&Zero_data,Press_Zero);
rest_LCD_data();
//========================================================================================
// 满程校正
//========================================================================================
Most_modify_ok=0;
Open_WatchDog();
while(!Most_modify_ok)
{
init_port();
En_key_INT();
_BIS_SR(LPM3_bits + GIE); // Enter LPM3
_NOP();
_NOP();
if(key_data==0x01)
Most_modify_ok=1;
if(ad_flag==1)
{
Show_AD_Data(); //ad1240
ad_flag=0;
}
}
Close_WatchDog();
Most_Sampling_AD=ad1240;
Save_AD_Data(&Most_Sampling_AD,Press_Most_Sampling_AD);
rest_LCD_data();
key_data=0;
Most_modify_ok=0;
set_lcd_out();
while(!Most_modify_ok)// 满程校正
{
Most_modify_ok=get_key_bar(LCD_Key_bar);
}
Save_key_data(&Most_data,Press_Most);
rest_LCD_data();
// k=((float)(Most_Sampling_AD-Zero_Sampling_AD))/16;
// k=k*3000;
//k=k/16777216;
// Zero_Most_k=(Most_data-Zero_data)/k;
Zero_Most_Revise_Flag=1;
Dis_key_INT();
WriteWord(Zero_Most_Revise_Flag,Zero_Most_modify);
En_key_INT();
//========================================================================================
// 线性校正点个数
//========================================================================================
rest_LCD_data();
line_modify_ok=0;
LCD_NUM=2;
DisplayNum(5,0,0,1);
DisplayNum(6,0,0,1);
DisplayNum(3,0,0,1);
DisplayNum(4,0,0,1);
while(!line_modify_ok)// 满程校正
{
line_modify_ok=get_key_bar(LCD_Key_bar);
}
line_modify_num=(unsigned long)LCD_Key_bar[1];
line_modify_num=line_modify_num+(unsigned long)LCD_Key_bar[0]*10;
LCD_NUM=6;
*Standard_Press=0;
Dis_key_INT();
WriteWord(Press_line_modify_num,line_modify_num);
En_key_INT();
//========================================================================================
// 线性校正数据
//========================================================================================
for(i=0;i<line_modify_num;i++)
{
line_modify_ok=0;
Open_WatchDog();
while(!line_modify_ok)
{
init_port();
En_key_INT();
_BIS_SR(LPM3_bits + GIE); // Enter LPM3
_NOP();
_NOP();
if(key_data==0x01)
line_modify_ok=1;
if(ad_flag==1)
{
Show_AD_Data(); //ad1240
ad_flag=0;
}
}
Close_WatchDog();
Most_Sampling_AD=ad1240;
bar1=Press_Measure+i*8;
bar2=(unsigned long int)(Measure_Press+i);
Save_AD_Data(&bar2,bar1);
line_modify_ok=0;
rest_LCD_data();
line_modify_ok=0;
rest_LCD_data();
set_lcd_out();
key_data=0;
while(!line_modify_ok)// 满程校正
{line_modify_ok=get_key_bar(LCD_Key_bar);}
bar1=Press_Standard+i*8;
bar2=(unsigned long int)(Standard_Press+i);
Save_key_data(&bar2,bar1);
if(i>0)
{
k=((float)(Measure_Press[i]-Measure_Press[i-1]))/16;
k=k*3000;
k=k/16777216;
line_modify_k[i-1]=(Standard_Press[i]-Standard_Press[i-1])/k;
}
}
//========================================================================================
// 存储校正OK标志
//========================================================================================
Press_Adjust_state=0x01;
Dis_key_INT();
WriteWord(Adjust_state,Press_Adjust_state);
En_key_INT();
set_lcd_powdn();
//========================================================================================
// 校正结束退出校正模式
//========================================================================================
Mode=0;
Open_WatchDog();
AD_Sampling_num=4;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -