標題: 壓力變化更新顯示,沒變化鎖定顯示,如何實現(xiàn)?如視頻效果 [打印本頁]

作者: zhth1979    時間: 2024-6-19 13:12
標題: 壓力變化更新顯示,沒變化鎖定顯示,如何實現(xiàn)?如視頻效果
如視頻顯示的效果。在大神lkc8210老師的代碼上改的,基本可以實現(xiàn)想要的功能,但與視頻中的效果還是有差別,各位大神幫我指點一下!
https://www.bilibili.com/video/BV1gLgPe1EVs/     (視頻效果)
void sleep()               // 放在while大循環(huán)中
{
   if(XmCnt==1)                                                            //XmCnt定時500mS檢測一下是否休眠   
    {                                                     
        XM_90S_1 = press;                                            //Press 為ADC獲取到的壓力數(shù)據(jù)給到當前壓力XM_90S_1
        if(XM_90S_1 < (XM_90S_2+5) && XM_90S_1 > (XM_90S_2-5))                                //當前壓力與上次壓力比較
         {
           xmflag = 0;
           parm1 = press;         //parm1把當前壓力值送示                                                                                                        }                                       
      else                                               //壓力不穩(wěn)定時當前壓力賦值給上次壓力變量
        {                                
           XM_90S_2 = XM_90S_1;                                             
           xmflag=1;                                       
         }
   if(stable==1)
      {
          System_CPU_OFF();                                      //關(guān)機
      }
  }
}


void Timer0Init()         //定時10ms
{        
        TMOD &= 0xF0;                     //設置定時器模式
        TMOD |= 0x01;                     //設置定時器模式
        TL0 = 0x00;                       //設置定時初始值
        TH0 = 0xe0;                       //設置定時初始值               
        TF0 = 0;                         //清除TF0標志
        ET0=1;               //定時器0開關(guān)        
        TR0 = 1;                         //定時器0開始計時
}
void timer0_ISR() interrupt 1       //定時器中斷0,中斷號:1
{
        TR0=0;                                                 //定時器0計時關(guān)閉
        
        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 發(fā)表于 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 發(fā)表于 2024-6-20 11:21
只是一個判斷邏輯,接入氣壓測量保持最大值,氣壓減小至0再加壓則重新測量,就這么簡單。

是這個意思,大神能幫我把上面的程序按您這個邏輯修改一下嗎?




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1