⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hal_key.lst

📁 cc2430讀取短地址程式
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   000065   940B         SUBB    A,#0xb
   \   000067   5024         JNC     ??HalKeyPoll_4
    494                {
    495                  ksave0 |= HAL_KEY_DOWN;
   \   000069   EE           MOV     A,R6
   \   00006A   D2E4         SETB    0xE0 /* A   */.4
   \   00006C   80D2         SJMP    ??HalKeyPoll_6
    496                }
    497                else if ((adc >= 101) && (adc <= 115))
    498                {
    499                }
    500              }
    501              else
    502              {
    503                 /* Rev C */
    504                if ((adc >= 90)  && (adc <= 104))
   \                     ??HalKeyPoll_2:
   \   00006E   EA           MOV     A,R2
   \   00006F   C3           CLR     C
   \   000070   945A         SUBB    A,#0x5a
   \   000072   EA           MOV     A,R2
   \   000073   4007         JC      ??HalKeyPoll_11
   \   000075   C3           CLR     C
   \   000076   9469         SUBB    A,#0x69
   \   000078   5013         JNC     ??HalKeyPoll_4
   \   00007A   80C1         SJMP    ??HalKeyPoll_5
    505                {
    506                   ksave0 |= HAL_KEY_UP;
    507                }
    508                else if ((adc >= 75)  && (adc <= 89))
   \                     ??HalKeyPoll_11:
   \   00007C   C3           CLR     C
   \   00007D   944B         SUBB    A,#0x4b
   \   00007F   50CD         JNC     ??HalKeyPoll_8
    509                {
    510                  ksave0 |= HAL_KEY_RIGHT;
    511                }
    512                else if ((adc >= 45)  && (adc <= 56))
   \   000081   EA           MOV     A,R2
   \   000082   C3           CLR     C
   \   000083   942D         SUBB    A,#0x2d
   \   000085   40DC         JC      ??HalKeyPoll_9
   \   000087   EA           MOV     A,R2
   \   000088   C3           CLR     C
   \   000089   9439         SUBB    A,#0x39
   \   00008B   40D1         JC      ??HalKeyPoll_10
    513                {
    514                  ksave0 |= HAL_KEY_LEFT;
    515                }
    516                else if (adc <= 10)
    517                {
    518                  ksave0 |= HAL_KEY_DOWN;
    519                }
    520                else if ((adc >= 105) && (adc <= 121))
    521                {
    522                }
    523              }
    524          
    525          
    526            } while (ksave0 != ksave1);
   \                     ??HalKeyPoll_4:
   \   00008D   EF           MOV     A,R7
   \   00008E   6E           XRL     A,R6
   \   00008F   708A         JNZ     ??HalKeyPoll_1
    527          
    528            keys |= ksave0;
   \   000091   EE           MOV     A,R6
   \   000092   42..         ORL     ?V0 + 0,A
    529          
    530          #endif
    531          
    532            /* Exit if polling and no keys have changed */
    533            if (!Hal_KeyIntEnable)
   \   000094   90....       MOV     DPTR,#Hal_KeyIntEnable
   \   000097   E0           MOVX    A,@DPTR
   \   000098   700B         JNZ     ??HalKeyPoll_12
    534            {
    535              if (keys == halKeySavedKeys)
   \   00009A   90....       MOV     DPTR,#??halKeySavedKeys
   \   00009D   E0           MOVX    A,@DPTR
   \   00009E   65..         XRL     A,?V0 + 0
   \   0000A0   601E         JZ      ??HalKeyPoll_13
    536              {
    537                return;
    538              }
    539              halKeySavedKeys = keys;     /* Store the current keys for comparation next time */
   \   0000A2   E5..         MOV     A,?V0 + 0
   \   0000A4   F0           MOVX    @DPTR,A
    540            }
    541          
    542            /* Invoke Callback if new keys were depressed */
    543            if (keys && (pHalKeyProcessFunction))
   \                     ??HalKeyPoll_12:
   \   0000A5   E5..         MOV     A,?V0 + 0
   \   0000A7   6017         JZ      ??HalKeyPoll_13
   \   0000A9   90....       MOV     DPTR,#??pHalKeyProcessFunction
   \   0000AC   12....       LCALL   ?Subroutine0 & 0xFFFF
   \                     ??CrossCallReturnLabel_1:
   \   0000AF   7A00         MOV     R2,#0x0
   \   0000B1   EC           MOV     A,R4
   \   0000B2   4D           ORL     A,R5
   \   0000B3   4E           ORL     A,R6
   \   0000B4   600A         JZ      ??HalKeyPoll_13
    544            {
    545              (pHalKeyProcessFunction) (keys, HAL_KEY_STATE_NORMAL);
   \   0000B6                ; Setup parameters for indirect call
   \   0000B6   A9..         MOV     R1,?V0 + 0
   \   0000B8   E0           MOVX    A,@DPTR
   \   0000B9   8C82         MOV     DPL,R4
   \   0000BB   8D83         MOV     DPH,R5
   \   0000BD   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \                     ??HalKeyPoll_13:
   \   0000C0   02....       LJMP    ?Subroutine2 & 0xFFFF
    546            }
    547          
    548          #endif /* HAL_KEY */
    549          
    550          }
    551          
    552          
    553          /**************************************************************************************************
    554           * @fn      halProcessKeyInterrupt
    555           *
    556           * @brief   Checks to see if it's a valid key interrupt, saves interrupt driven key states for
    557           *          processing by HalKeyRead(), and debounces keys by scheduling HalKeyRead() 25ms later.
    558           *
    559           * @param
    560           *
    561           * @return
    562           **************************************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    563          void halProcessKeyInterrupt (void)
   \                     halProcessKeyInterrupt:
    564          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    565          
    566          #if (HAL_KEY == TRUE)
    567          
    568            bool    valid=FALSE;
   \   000004   7A00         MOV     R2,#0x0
    569          
    570          #if defined (HAL_KEY_SW_6_ENABLE)
    571            if (HAL_KEY_SW_6_PXIFG & HAL_KEY_SW_6_BIT)      /* Interrupt Flag has been set */
   \   000006   E589         MOV     A,0x89
   \   000008   A2E1         MOV     C,0xE0 /* A   */.1
   \   00000A   5004         JNC     ??halProcessKeyInterrupt_0
    572            {
    573              HAL_KEY_SW_6_PXIFG = ~(HAL_KEY_SW_6_BIT);    /* Clear Interrupt Flag */
   \   00000C   7589FD       MOV     0x89,#-0x3
    574              valid = TRUE;
   \   00000F   0A           INC     R2
    575            }
    576          #endif
    577          
    578          #if defined (HAL_KEY_SW_5_ENABLE)
    579            if (HAL_KEY_SW_5_PXIFG & HAL_KEY_SW_5_BIT)      /* Interrupt Flag has been set */
   \                     ??halProcessKeyInterrupt_0:
   \   000010   E589         MOV     A,0x89
   \   000012   A2E5         MOV     C,0xE0 /* A   */.5
   \   000014   5005         JNC     ??halProcessKeyInterrupt_1
    580            {
    581              HAL_KEY_SW_5_PXIFG = ~(HAL_KEY_SW_5_BIT);    /* Clear Interrupt Flag */
   \   000016   7589DF       MOV     0x89,#-0x21
    582              valid = TRUE;
   \   000019   8003         SJMP    ??halProcessKeyInterrupt_2
    583            }
    584          #endif
    585          
    586            if (valid)
   \                     ??halProcessKeyInterrupt_1:
   \   00001B   EA           MOV     A,R2
   \   00001C   6015         JZ      ??halProcessKeyInterrupt_3
    587            {
    588              osal_start_timerEx (Hal_TaskID, HAL_KEY_EVENT, HAL_KEY_DEBOUNCE_VALUE);
   \                     ??halProcessKeyInterrupt_2:
   \   00001E                ; Setup parameters for call to function osal_start_timerEx
   \   00001E   7C19         MOV     R4,#0x19
   \   000020   7D00         MOV     R5,#0x0
   \   000022   7A01         MOV     R2,#0x1
   \   000024   7B00         MOV     R3,#0x0
   \   000026   90....       MOV     DPTR,#Hal_TaskID
   \   000029   E0           MOVX    A,@DPTR
   \   00002A   F9           MOV     R1,A
   \   00002B   90....       MOV     DPTR,#(osal_start_timerEx & 0xffff)
   \   00002E   74..         MOV     A,#((osal_start_timerEx >> 16) & 0xff)
   \   000030   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    589            }
    590          #endif /* HAL_KEY */
    591          }
   \                     ??halProcessKeyInterrupt_3:
   \   000033   02....       LJMP    ?Subroutine1 & 0xFFFF
    592          
    593          /**************************************************************************************************
    594           * @fn      HalKeyEnterSleep
    595           *
    596           * @brief  - Get called to enter sleep mode
    597           *
    598           * @param
    599           *
    600           * @return
    601           **************************************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    602          void HalKeyEnterSleep ( void )
   \                     HalKeyEnterSleep:
    603          {
   \   000000                ; Saved register size: 0
   \   000000                ; Auto size: 0
    604            /* Sleep!!! */
    605          }
   \   000000   02....       LJMP    ?BRET
    606          
    607          /**************************************************************************************************
    608           * @fn      HalKeyExitSleep
    609           *
    610           * @brief   - Get called when sleep is over
    611           *
    612           * @param
    613           *
    614           * @return  - return saved keys
    615           **************************************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    616          uint8 HalKeyExitSleep ( void )
   \                     HalKeyExitSleep:
    617          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    618            /* Wake up and read keys */
    619            return ( HalKeyRead () );
   \   000004                ; Setup parameters for call to function HalKeyRead
   \   000004   90....       MOV     DPTR,#(HalKeyRead & 0xffff)
   \   000007   74..         MOV     A,#((HalKeyRead >> 16) & 0xff)
   \   000009   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00000C   02....       LJMP    ?Subroutine

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -