hal_key.lst

来自「cc2430讀取短地址程式」· LST 代码 · 共 1,204 行 · 第 1/5 页

LST
1,204 行
字号
   \   000067   5024         JNC     ??HalKeyPoll_4
    492                {
    493                  ksave0 |= HAL_KEY_DOWN;
   \   000069   EE           MOV     A,R6
   \   00006A   D2E4         SETB    0xE0 /* A   */.4
   \   00006C   80D2         SJMP    ??HalKeyPoll_6
    494                }
    495                else if ((adc >= 101) && (adc <= 115))
    496                {
    497                }
    498              }
    499              else
    500              {
    501                 /* Rev C */
    502                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
    503                {
    504                   ksave0 |= HAL_KEY_UP;
    505                }
    506                else if ((adc >= 75)  && (adc <= 89))
   \                     ??HalKeyPoll_11:
   \   00007C   C3           CLR     C
   \   00007D   944B         SUBB    A,#0x4b
   \   00007F   50CD         JNC     ??HalKeyPoll_8
    507                {
    508                  ksave0 |= HAL_KEY_RIGHT;
    509                }
    510                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
    511                {
    512                  ksave0 |= HAL_KEY_LEFT;
    513                }
    514                else if (adc <= 10)
    515                {
    516                  ksave0 |= HAL_KEY_DOWN;
    517                }
    518                else if ((adc >= 105) && (adc <= 121))
    519                {
    520                }
    521              }
    522          
    523          
    524            } while (ksave0 != ksave1);
   \                     ??HalKeyPoll_4:
   \   00008D   EF           MOV     A,R7
   \   00008E   6E           XRL     A,R6
   \   00008F   708A         JNZ     ??HalKeyPoll_1
    525          
    526            keys |= ksave0;
   \   000091   EE           MOV     A,R6
   \   000092   42..         ORL     ?V0 + 0,A
    527          
    528          #endif
    529          
    530            /* Exit if polling and no keys have changed */
    531            if (!Hal_KeyIntEnable)
   \   000094   90....       MOV     DPTR,#Hal_KeyIntEnable
   \   000097   E0           MOVX    A,@DPTR
   \   000098   700B         JNZ     ??HalKeyPoll_12
    532            {
    533              if (keys == halKeySavedKeys)
   \   00009A   90....       MOV     DPTR,#??halKeySavedKeys
   \   00009D   E0           MOVX    A,@DPTR
   \   00009E   65..         XRL     A,?V0 + 0
   \   0000A0   601E         JZ      ??HalKeyPoll_13
    534              {
    535                return;
    536              }
    537              halKeySavedKeys = keys;     /* Store the current keys for comparation next time */
   \   0000A2   E5..         MOV     A,?V0 + 0
   \   0000A4   F0           MOVX    @DPTR,A
    538            }
    539          
    540            /* Invoke Callback if new keys were depressed */
    541            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
    542            {
    543              (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
    544            }
    545          
    546          #endif /* HAL_KEY */
    547          
    548          }
    549          
    550          
    551          /**************************************************************************************************
    552           * @fn      halProcessKeyInterrupt
    553           *
    554           * @brief   Checks to see if it's a valid key interrupt, saves interrupt driven key states for
    555           *          processing by HalKeyRead(), and debounces keys by scheduling HalKeyRead() 25ms later.
    556           *
    557           * @param
    558           *
    559           * @return
    560           **************************************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    561          void halProcessKeyInterrupt (void)
   \                     halProcessKeyInterrupt:
    562          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    563          
    564          #if (HAL_KEY == TRUE)
    565          
    566            bool    valid=FALSE;
   \   000004   7A00         MOV     R2,#0x0
    567          
    568          #if defined (HAL_KEY_SW_6_ENABLE)
    569            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
    570            {
    571              HAL_KEY_SW_6_PXIFG = ~(HAL_KEY_SW_6_BIT);    /* Clear Interrupt Flag */
   \   00000C   7589FD       MOV     0x89,#-0x3
    572              valid = TRUE;
   \   00000F   0A           INC     R2
    573            }
    574          #endif
    575          
    576          #if defined (HAL_KEY_SW_5_ENABLE)
    577            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
    578            {
    579              HAL_KEY_SW_5_PXIFG = ~(HAL_KEY_SW_5_BIT);    /* Clear Interrupt Flag */
   \   000016   7589DF       MOV     0x89,#-0x21
    580              valid = TRUE;
   \   000019   8003         SJMP    ??halProcessKeyInterrupt_2
    581            }
    582          #endif
    583          
    584            if (valid)
   \                     ??halProcessKeyInterrupt_1:
   \   00001B   EA           MOV     A,R2
   \   00001C   6015         JZ      ??halProcessKeyInterrupt_3
    585            {
    586              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()
    587            }
    588          #endif /* HAL_KEY */
    589          }
   \                     ??halProcessKeyInterrupt_3:
   \   000033   02....       LJMP    ?Subroutine1 & 0xFFFF
    590          
    591          /**************************************************************************************************
    592           * @fn      HalKeyEnterSleep
    593           *
    594           * @brief  - Get called to enter sleep mode
    595           *
    596           * @param
    597           *
    598           * @return
    599           **************************************************************************************************/

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

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    614          uint8 HalKeyExitSleep ( void )
   \                     HalKeyExitSleep:
    615          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    616            /* Wake up and read keys */
    617            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....

⌨️ 快捷键说明

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