zoukankan      html  css  js  c++  java
  • 【原创】滑盖检测代码中的延时操作

    #define D_CHECK_FLIP_COVER_TIMES 5  // 由于hs_poll_gpio函数是以100ms的周期被调用,这里的5表示5次polling的结果都是高电平,即滑盖open
    #define D_FLIP_COVER_IS_OPEN  TRUE
    #define D_FLIP_COVER_IS_CLOSED  FALSE

    //这个宏定义很重要,用来指示前面几次polling 的结果是否都相同,比如检测5次,则D_CHECK_FLIP_COVER_MASK= 1<<5 -1 =0x1f=0x11111

    #define D_CHECK_FLIP_COVER_MASK ((1<<D_CHECK_FLIP_COVER_TIMES)-1)

    #define D_FLIP_COVER_OPEN  D_CHECK_FLIP_COVER_MASK
    #define D_FLIP_COVER_CLOSED  0

    static uint32 stFlipcoverCheckTimes = 0;
    static boolean hs_cover_on = D_FLIP_COVER_IS_CLOSED;

    // code:

    cover_on = HS_COVER_ON(); //读取GPIO,判断高低电平
     if (cover_on == D_FLIP_COVER_IS_OPEN)
            stFlipcoverCheckTimes = (stFlipcoverCheckTimes << 1) | 0x00000001;  //如果是高电平,表示向上滑(open),并记录次数
     else  // cover_on == D_FLIP_COVER_IS_CLOSED
            stFlipcoverCheckTimes = (stFlipcoverCheckTimes << 1) | 0x00000000;   //如果是低电平,表示向下滑(close),

     cover_on = hs_cover_on;

     if ((stFlipcoverCheckTimes & D_CHECK_FLIP_COVER_MASK) == D_FLIP_COVER_OPEN)  //如果前面几次都是高电平,则可以判断滑盖open
      cover_on = D_FLIP_COVER_IS_OPEN;
     else if ((stFlipcoverCheckTimes & D_CHECK_FLIP_COVER_MASK) == D_FLIP_COVER_CLOSED)
      cover_on = D_FLIP_COVER_IS_CLOSED;

     if ( cover_on != hs_cover_on )
     {
      hs_cover_on = cover_on;   /* Invert the state */
      if (cover_on==D_FLIP_COVER_IS_OPEN)
      {
       cover_key = (byte)HS_FLIP_OPEN_K;
      }
      else // cover_on == D_FLIP_COVER_IS_CLOSED
      {
       cover_key = (byte)HS_FLIP_CLOSE_K;
      }

      /* Pass key to show that the state changed, open/close
      */
      KEYPAD_PASS_KEY_CODE( cover_key, HS_NONE_K );
      KEYPAD_PASS_KEY_CODE( HS_RELEASE_K, cover_key );

  • 相关阅读:
    linux内存-swap
    linux内存-buffer和cache
    Linux内存-内存管理机制oom_killer
    HTTPS(二)证书合法性校验
    HTTPS(一)基础及连接建立
    docker镜像(一)overlayfs
    DNS(三)全局流量调度
    建造者模式(Builder Pattern)
    抽象工厂模式(Abstract Factory)
    工厂方法模式(Factory Method Pattern)
  • 原文地址:https://www.cnblogs.com/hengfeng/p/1522552.html
Copyright © 2011-2022 走看看