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

📄 hal_key.lst

📁 cc2430讀取短地址程式
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   000050   942D         SUBB    A,#0x2d
   \   000052   400B         JC      ??HalKeyRead_9
   \   000054   EA           MOV     A,R2
   \   000055   C3           CLR     C
   \   000056   9438         SUBB    A,#0x38
   \   000058   502F         JNC     ??HalKeyRead_4
    379                {
    380                  ksave0 |= HAL_KEY_LEFT;
   \                     ??HalKeyRead_10:
   \   00005A   EF           MOV     A,R7
   \   00005B   D2E3         SETB    0xE0 /* A   */.3
   \   00005D   80DD         SJMP    ??HalKeyRead_6
    381                }
    382                else if (adc <= 10)
   \                     ??HalKeyRead_9:
   \   00005F   EA           MOV     A,R2
   \   000060   C3           CLR     C
   \   000061   940B         SUBB    A,#0xb
   \   000063   5024         JNC     ??HalKeyRead_4
    383                {
    384                  ksave0 |= HAL_KEY_DOWN;
   \   000065   EF           MOV     A,R7
   \   000066   D2E4         SETB    0xE0 /* A   */.4
   \   000068   80D2         SJMP    ??HalKeyRead_6
    385                }
    386                else if ((adc >= 101) && (adc <= 115))
    387                {
    388                }
    389              }
    390              else
    391              {
    392                 /* Rev C */
    393                if ((adc >= 90)  && (adc <= 104))
   \                     ??HalKeyRead_2:
   \   00006A   EA           MOV     A,R2
   \   00006B   C3           CLR     C
   \   00006C   945A         SUBB    A,#0x5a
   \   00006E   EA           MOV     A,R2
   \   00006F   4007         JC      ??HalKeyRead_11
   \   000071   C3           CLR     C
   \   000072   9469         SUBB    A,#0x69
   \   000074   5013         JNC     ??HalKeyRead_4
   \   000076   80C1         SJMP    ??HalKeyRead_5
    394                {
    395                   ksave0 |= HAL_KEY_UP;
    396                }
    397                else if ((adc >= 75)  && (adc <= 89))
   \                     ??HalKeyRead_11:
   \   000078   C3           CLR     C
   \   000079   944B         SUBB    A,#0x4b
   \   00007B   50CD         JNC     ??HalKeyRead_8
    398                {
    399                  ksave0 |= HAL_KEY_RIGHT;
    400                }
    401                else if ((adc >= 45)  && (adc <= 56))
   \   00007D   EA           MOV     A,R2
   \   00007E   C3           CLR     C
   \   00007F   942D         SUBB    A,#0x2d
   \   000081   40DC         JC      ??HalKeyRead_9
   \   000083   EA           MOV     A,R2
   \   000084   C3           CLR     C
   \   000085   9439         SUBB    A,#0x39
   \   000087   40D1         JC      ??HalKeyRead_10
    402                {
    403                  ksave0 |= HAL_KEY_LEFT;
    404                }
    405                else if (adc <= 10)
    406                {
    407                  ksave0 |= HAL_KEY_DOWN;
    408                }
    409                else if ((adc >= 105) && (adc <= 121))
    410                {
    411                }
    412              }
    413          
    414            } while (ksave0 != ksave1);
   \                     ??HalKeyRead_4:
   \   000089   E5..         MOV     A,?V0 + 0
   \   00008B   6F           XRL     A,R7
   \   00008C   7089         JNZ     ??HalKeyRead_1
    415          
    416            keys |= ksave0;
    417          
    418          #endif
    419          
    420          #endif /* HAL_KEY */
    421          
    422            return keys;
   \   00008E   EF           MOV     A,R7
   \   00008F   4E           ORL     A,R6
   \   000090   F9           MOV     R1,A
   \   000091                REQUIRE ?Subroutine2
   \   000091                ; // Fall through to label ?Subroutine2
    423            //return 0x04;
    424          
    425          }

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine2:
   \   000000   7F01         MOV     R7,#0x1
   \   000002   02....       LJMP    ?BANKED_LEAVE_XDATA
    426          
    427          
    428          /**************************************************************************************************
    429           * @fn      HalKeyPoll
    430           *
    431           * @brief   Called by hal_driver to poll the keys
    432           *
    433           * @param   None
    434           *
    435           * @return  None
    436           **************************************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    437          void HalKeyPoll (void)
   \                     HalKeyPoll:
    438          {
   \   000000   74F7         MOV     A,#-0x9
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 9
   \   000005                ; Auto size: 0
    439          #if (HAL_KEY == TRUE)
    440          
    441            uint8 keys = 0;
   \   000005   75..00       MOV     ?V0 + 0,#0x0
    442          
    443          #if defined (HAL_KEY_JOYSTICK_ENABLE)
    444            uint8 ksave0 = 0;
   \   000008   7E00         MOV     R6,#0x0
    445            uint8 ksave1;
    446            uint8 adc;
    447          #endif
    448          
    449            /*
    450            *  If interrupts are enabled, get the status of the interrupt-driven keys from 'halSaveIntKey'
    451            *  which is updated by the key ISR.  If Polling, read these keys directly.
    452            */
    453          #if defined (HAL_KEY_SW_6_ENABLE)
    454            if (!(HAL_KEY_SW_6_PORT & HAL_KEY_SW_6_BIT))    /* Key is active low */
   \   00000A   A281         MOV     C,0x80.1
   \   00000C   4003         JC      ??HalKeyPoll_0
    455            {
    456              keys |= HAL_KEY_SW_6;
   \   00000E   75..20       MOV     ?V0 + 0,#0x20
    457            }
    458          #endif
    459          #if defined (HAL_KEY_SW_5_ENABLE)
    460            if (HAL_KEY_SW_5_PORT & HAL_KEY_SW_5_BIT)       /* Key is active high */
   \                     ??HalKeyPoll_0:
   \   000011   A285         MOV     C,0x80.5
   \   000013   5006         JNC     ??HalKeyPoll_1
    461            {
    462              keys |= HAL_KEY_SW_5;
   \   000015   E5..         MOV     A,?V0 + 0
   \   000017   D2E2         SETB    0xE0 /* A   */.2
   \   000019   F5..         MOV     ?V0 + 0,A
    463            }
    464          #endif
    465          
    466          #if defined (HAL_KEY_JOYSTICK_ENABLE)
    467          /*
    468          *  The joystick control is encoded as an analog voltage.  Keep on reading
    469          *  the ADC until two consecutive key decisions are the same.
    470          */
    471          
    472            do
    473            {
    474              ksave1 = ksave0;    /* save previouse key reading */
   \                     ??HalKeyPoll_1:
   \   00001B   EE           MOV     A,R6
   \   00001C   FF           MOV     R7,A
    475          
    476              adc = HalAdcRead (HAL_KEY_JOY_CHN, HAL_ADC_RESOLUTION_8);
   \   00001D                ; Setup parameters for call to function HalAdcRead
   \   00001D   7A01         MOV     R2,#0x1
   \   00001F   7906         MOV     R1,#0x6
   \   000021   90....       MOV     DPTR,#(HalAdcRead & 0xffff)
   \   000024   74..         MOV     A,#((HalAdcRead >> 16) & 0xff)
   \   000026   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    477          
    478              if  (CHVER == 0x01)
   \   000029   90DF60       MOV     DPTR,#-0x20a0
   \   00002C   E0           MOVX    A,@DPTR
   \   00002D   6401         XRL     A,#0x1
   \   00002F   703D         JNZ     ??HalKeyPoll_2
    479              {
    480                /* Rev B */
    481                if ((adc >= 90) && (adc <= 100))
   \   000031   EA           MOV     A,R2
   \   000032   C3           CLR     C
   \   000033   945A         SUBB    A,#0x5a
   \   000035   EA           MOV     A,R2
   \   000036   400B         JC      ??HalKeyPoll_3
   \   000038   C3           CLR     C
   \   000039   9465         SUBB    A,#0x65
   \   00003B   5050         JNC     ??HalKeyPoll_4
    482                {
    483                   ksave0 |= HAL_KEY_UP;
   \                     ??HalKeyPoll_5:
   \   00003D   EE           MOV     A,R6
   \   00003E   D2E0         SETB    0xE0 /* A   */.0
   \                     ??HalKeyPoll_6:
   \   000040   FE           MOV     R6,A
   \   000041   804A         SJMP    ??HalKeyPoll_4
    484                }
    485                else if ((adc >= 75) && (adc <= 85))
   \                     ??HalKeyPoll_3:
   \   000043   C3           CLR     C
   \   000044   944B         SUBB    A,#0x4b
   \   000046   EA           MOV     A,R2
   \   000047   400A         JC      ??HalKeyPoll_7
   \   000049   C3           CLR     C
   \   00004A   9456         SUBB    A,#0x56
   \   00004C   503F         JNC     ??HalKeyPoll_4
    486                {
    487                  ksave0 |= HAL_KEY_RIGHT;
   \                     ??HalKeyPoll_8:
   \   00004E   EE           MOV     A,R6
   \   00004F   D2E1         SETB    0xE0 /* A   */.1
   \   000051   80ED         SJMP    ??HalKeyPoll_6
    488                }
    489                else if ((adc >= 45) && (adc <= 55))
   \                     ??HalKeyPoll_7:
   \   000053   C3           CLR     C
   \   000054   942D         SUBB    A,#0x2d
   \   000056   400B         JC      ??HalKeyPoll_9
   \   000058   EA           MOV     A,R2
   \   000059   C3           CLR     C
   \   00005A   9438         SUBB    A,#0x38
   \   00005C   502F         JNC     ??HalKeyPoll_4
    490                {
    491                  ksave0 |= HAL_KEY_LEFT;
   \                     ??HalKeyPoll_10:
   \   00005E   EE           MOV     A,R6
   \   00005F   D2E3         SETB    0xE0 /* A   */.3
   \   000061   80DD         SJMP    ??HalKeyPoll_6
    492                }
    493                else if (adc <= 10)
   \                     ??HalKeyPoll_9:
   \   000063   EA           MOV     A,R2
   \   000064   C3           CLR     C

⌨️ 快捷键说明

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