软件滤波求解

2010年11月25日 21:22    发布者:richard1983
各位看官,在下有一问题不甚明了,忘知情者指点迷津。这是一个软件滤波的算法,本人看不大懂,懂的人可以讲一下算法的精髓,谢谢!
     void Key_Debounce(TkeyIndex enKey,u8 input)  
  
    {  
  
  
  
  
  
   
  u8 keycount;  
  
  
  
   
  T_KeyCtl* p_stKey;  
  
  
   
  
  
  
  
  
  
   
  p_stKey=&keyIndex;  
  
  
   
  keycount= p_stKey->count;  
  
  
   
  
  
  
  
  
  
   
  if (input != FALSE) {  
  
  
   
  
  if (keycount <  KEY_HOLD_THRESHOLD) {   
  
  
  keycount++;  
  
   
  
  }  
  
  
  
   
  
  else{  
  
  
  
   
  
  }  
  
  
  
   
  
  if (keycount >=  KEY_HOLD_THRESHOLD) {   
  
  
  if (p_stKey->ctl.Bits.press_s ==  FALSE) {   
  
  
  
  p_stKey->ctl.Bits.press_s = TRUE;   
  
  
  
  p_stKey->ctl.Bits.press = TRUE;   
  
  
  }  
  
  
   
  
  
  p_stKey->ctl.Bits.status = TRUE;   
  
  }  
  
  
  
   
  }  
  
  
  
  
   
  else {  
  
  
  
  
   
  
  if (keycount >  KEY_PRESS_THRESHOLD) {   
  
  
  keycount = KEY_PRESS_THRESHOLD;   
  
  }  
  
  
  
   
  
  if (keycount > KEY_RELEASE_MIN) {  
   
  
  
  keycount--;  
  
   
  
  }  
  
  
  
   
  
  if (keycount <= KEY_RELEASE_MIN)  {  
   
  
  
  if (p_stKey->ctl.Bits.press_s) {   
  
  
  
  p_stKey->ctl.Bits.release = TRUE;   
  
  
  
  p_stKey->ctl.Bits.press_s =  FALSE;   
  
  
  }  
  
  
   
  
  
  p_stKey->ctl.Bits.status = FALSE;   
  
  }  
  
  
  
   
  }  
  
  
  
  
   
  p_stKey->count = keycount;  
  
  
    }

网友评论

mikeshao 2010年12月23日
界面库
mikeshao 2010年12月23日
界面库
xyj 2010年12月28日
:L
这排版怎么看的那么别扭呢。
lzy89c55 2011年02月14日
:)
ljc424 2011年02月16日
看着好累哦
ywwork2011 2011年02月19日
liuhs 2011年02月22日
看着好累哦
hustchenjing 2011年02月22日
防止抖动的一个算法。
lianwazi 2011年02月26日
好好学习哦!!!谢谢!!!