标题: 压力变化更新显示,没变化锁定显示,如何实现?如视频效果 [打印本页]

作者: zhth1979    时间: 2024-6-19 13:12
标题: 压力变化更新显示,没变化锁定显示,如何实现?如视频效果
如视频显示的效果。在大神lkc8210老师的代码上改的,基本可以实现想要的功能,但与视频中的效果还是有差别,各位大神帮我指点一下!
https://www.bilibili.com/video/BV1gLgPe1EVs/     (视频效果)
void sleep()               // 放在while大循环中
{
   if(XmCnt==1)                                                            //XmCnt定时500mS检测一下是否休眠   
    {                                                     
        XM_90S_1 = press;                                            //Press 为ADC获取到的压力数据给到当前压力XM_90S_1
        if(XM_90S_1 < (XM_90S_2+5) && XM_90S_1 > (XM_90S_2-5))                                //当前压力与上次压力比较
         {
           xmflag = 0;
           parm1 = press;         //parm1把当前压力值送示                                                                                                        }                                       
      else                                               //压力不稳定时当前压力赋值给上次压力变量
        {                                
           XM_90S_2 = XM_90S_1;                                             
           xmflag=1;                                       
         }
   if(stable==1)
      {
          System_CPU_OFF();                                      //关机
      }
  }
}


void Timer0Init()         //定时10ms
{        
        TMOD &= 0xF0;                     //设置定时器模式
        TMOD |= 0x01;                     //设置定时器模式
        TL0 = 0x00;                       //设置定时初始值
        TH0 = 0xe0;                       //设置定时初始值               
        TF0 = 0;                         //清除TF0标志
        ET0=1;               //定时器0开关        
        TR0 = 1;                         //定时器0开始计时
}
void timer0_ISR() interrupt 1       //定时器中断0,中断号:1
{
        TR0=0;                                                 //定时器0计时关闭
        
        if(xmflag)
          {
                         gjcnt++;
                         if(gjcnt>=6000)
                          {
                                        gjcnt=0;
                                        stable = 1;
                          }         
                 }
   else
          {
                 gjcnt=0;
                 stable = 0;         
    }
               
        TL0 = 0x00;                                       //设置定时初始值
        TH0 = 0xe0;                                       //设置定时初始值
        TR0=1;                               //定时器0计时打开        
}










作者: lkc8210    时间: 2024-6-19 14:53
有啥差别?
作者: zhth1979    时间: 2024-6-20 10:07
lkc8210 发表于 2024-6-19 14:53
有啥差别?

测气时,有时压力值正确并能保持,有时拿掉时快了或慢了压力值保持不住,会回落!如下面视频所示https://www.bilibili.com/video/BV1JagVeRErM/
作者: coody_sz    时间: 2024-6-20 11:21
只是一个判断逻辑,接入气压测量保持最大值,气压减小至0再加压则重新测量,就这么简单。
作者: yzwzfyz    时间: 2024-6-20 20:12
如果每次测量都是OK的,则实测实显当无问题。

作者: zhth1979    时间: 2024-7-16 16:31
coody_sz 发表于 2024-6-20 11:21
只是一个判断逻辑,接入气压测量保持最大值,气压减小至0再加压则重新测量,就这么简单。

是这个意思,大神能帮我把上面的程序按您这个逻辑修改一下吗?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1