单片机如何读出满足条件的变量瞬间数值,并保存在EEPROM中???
if((LOAD>=LOAD_MAX)&&(LOingAD==100)){bxl=disp;bxl_3=bxl>>16;bxl_h=bxl>>8;bxl_l=bxl;ee...
if((LOAD>=LOAD_MAX)&&(LOingAD==100))
{ bxl=disp;
bxl_3=bxl>>16;
bxl_h=bxl>>8;
bxl_l=bxl;
eeprom_eares(13312);//擦除第27扇区,
eeprom_write(13312,bxl_3);
eeprom_write(13313,bxl_h);
eeprom_write(13314,bxl_l);
}
//LOAD为AD 转换后实时力值,LOAD_MAX为LOAD的最大值,disp为变形量【由光电数编码器测得】
条件语句的目的是:转换后力值不断的增大而产生新的最大值,覆盖掉原来的 LOAD_MAX,保持递增的趋势,在这个趋势过程中,会产生不断变大的形变disp,此刻读出力值为100Kg时,对应的变形量disp,并保存在EEPROM中。
现在的问题是上面的代码采集不到数据bxl,但是如果变成
if((LOAD>=LOAD_MAX)&&(LOingAD>=100))
则会采集到同步变化的bxl,但我想要100kg对应点的bxl数值??
这个问题我一直搞不懂还请高手指教,诚谢!! 展开
{ bxl=disp;
bxl_3=bxl>>16;
bxl_h=bxl>>8;
bxl_l=bxl;
eeprom_eares(13312);//擦除第27扇区,
eeprom_write(13312,bxl_3);
eeprom_write(13313,bxl_h);
eeprom_write(13314,bxl_l);
}
//LOAD为AD 转换后实时力值,LOAD_MAX为LOAD的最大值,disp为变形量【由光电数编码器测得】
条件语句的目的是:转换后力值不断的增大而产生新的最大值,覆盖掉原来的 LOAD_MAX,保持递增的趋势,在这个趋势过程中,会产生不断变大的形变disp,此刻读出力值为100Kg时,对应的变形量disp,并保存在EEPROM中。
现在的问题是上面的代码采集不到数据bxl,但是如果变成
if((LOAD>=LOAD_MAX)&&(LOingAD>=100))
则会采集到同步变化的bxl,但我想要100kg对应点的bxl数值??
这个问题我一直搞不懂还请高手指教,诚谢!! 展开
1个回答
展开全部
根据你的描述,这个问题的关键在于:
1. 根据你的描述,我的理解是将if((LOAD>=LOAD_MAX)&&(LOingAD==100))改成if((LOAD>=LOAD_MAX)&&(LOingAD>=100))就可以进入后面的保存操作,请问你有没有在bxl=disp;设置断点,看看两种情况是否能到到达断点?
如果只有LOingAD>=100能够到达断点,请回答下面的问题;如果都能达到断点,那么你是怎么判断LOingAD==100不能采集到数据,根据(证据)是什么?
2. LOingAD什么时候改变(被赋值)?
3. if((LOAD>=LOAD_MAX)&&(LOingAD==100))这条语句多长时间调用一次?
1. 根据你的描述,我的理解是将if((LOAD>=LOAD_MAX)&&(LOingAD==100))改成if((LOAD>=LOAD_MAX)&&(LOingAD>=100))就可以进入后面的保存操作,请问你有没有在bxl=disp;设置断点,看看两种情况是否能到到达断点?
如果只有LOingAD>=100能够到达断点,请回答下面的问题;如果都能达到断点,那么你是怎么判断LOingAD==100不能采集到数据,根据(证据)是什么?
2. LOingAD什么时候改变(被赋值)?
3. if((LOAD>=LOAD_MAX)&&(LOingAD==100))这条语句多长时间调用一次?
追问
这位朋友你说的很对,将代码改成if((LOAD>=LOAD_MAX)&&(LOAD>=100))后采集到数据了 但还是有误差,bxl的值不断的随着压力LOAD的增大而变大,还是采集不到100kg点的数据,
本人会单片机,但水平一般,
对兄台说的断点不是很明白,还请兄台指点指点,
追答
断点就是在某条语句设定一个标志,程序如果运行到那条语句就会自动停下来。这个功能需要用到仿真器。如果觉得不清楚可以直接联系我,已将邮箱发消息给你了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询