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

📄 halstack.lst

📁 无线单片机cc2430简化协议的无线收发程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   000000   74F8         MOV     A,#-0x8
   \   000002   12....       LCALL   ?FUNC_ENTER_XDATA
   \   000005                ; Saved register size: 8
   \   000005                ; Auto size: 0
   \   000005   E9           MOV     A,R1
   \   000006   FE           MOV     R6,A
   \   000007   EA           MOV     A,R2
   \   000008   FC           MOV     R4,A
    137             UINT16 afreq;
    138          
    139             //DEBUG_STRING(DBG_TX,"halSetRadioIEEEFrequency() -set channel:");
    140             //DEBUG_UINT8(DBG_TX,channel);   DEBUG_STRING(DBG_TX,"\n");
    141          
    142             if (frequency != PHY_FREQ_2405M) return(LRWPAN_STATUS_PHY_FAILED);
   \   000009   EE           MOV     A,R6
   \   00000A   6004         JZ      ??halSetRadioIEEEFrequency_0
   \   00000C   7901         MOV     R1,#0x1
   \   00000E   8052         SJMP    ??halSetRadioIEEEFrequency_1
    143             if ((channel < 11) || (channel > 26)) return(LRWPAN_STATUS_PHY_FAILED);
   \                     ??halSetRadioIEEEFrequency_0:
   \   000010   EC           MOV     A,R4
   \   000011   C3           CLR     C
   \   000012   940B         SUBB    A,#0xb
   \   000014   4006         JC      ??halSetRadioIEEEFrequency_2
   \   000016   EC           MOV     A,R4
   \   000017   C3           CLR     C
   \   000018   941B         SUBB    A,#0x1b
   \   00001A   4004         JC      ??halSetRadioIEEEFrequency_3
   \                     ??halSetRadioIEEEFrequency_2:
   \   00001C   7901         MOV     R1,#0x1
   \   00001E   8042         SJMP    ??halSetRadioIEEEFrequency_1
    144             afreq = 357 + 5*(channel - 11) ;
   \                     ??halSetRadioIEEEFrequency_3:
   \   000020   EC           MOV     A,R4
   \   000021   F8           MOV     R0,A
   \   000022   7900         MOV     R1,#0x0
   \   000024   E8           MOV     A,R0
   \   000025   75F005       MOV     B,#0x5
   \   000028   A4           MUL     AB
   \   000029   C8           XCH     A,R0
   \   00002A   ADF0         MOV     R5,B
   \   00002C   75F000       MOV     B,#0x0
   \   00002F   A4           MUL     AB
   \   000030   2D           ADD     A,R5
   \   000031   FD           MOV     R5,A
   \   000032   75F005       MOV     B,#0x5
   \   000035   E9           MOV     A,R1
   \   000036   A4           MUL     AB
   \   000037   2D           ADD     A,R5
   \   000038   F9           MOV     R1,A
   \   000039   742E         MOV     A,#0x2e
   \   00003B   28           ADD     A,R0
   \   00003C   F8           MOV     R0,A
   \   00003D   7401         MOV     A,#0x1
   \   00003F   39           ADDC    A,R1
   \   000040   F9           MOV     R1,A
   \   000041   E8           MOV     A,R0
   \   000042   FA           MOV     R2,A
   \   000043   E9           MOV     A,R1
   \   000044   FB           MOV     R3,A
    145             FSCTRLL = (BYTE) afreq;
   \   000045   EA           MOV     A,R2
   \   000046   90DF11       MOV     DPTR,#-0x20ef
   \   000049   F0           MOVX    @DPTR,A
    146             FSCTRLH = ((FSCTRLH & ~0x03) | (BYTE)((afreq >> 8) & 0x03));
   \   00004A   EB           MOV     A,R3
   \   00004B   F9           MOV     R1,A
   \   00004C   E9           MOV     A,R1
   \   00004D   F8           MOV     R0,A
   \   00004E   5403         ANL     A,#0x3
   \   000050   C0E0         PUSH    A
   \   000052   90DF10       MOV     DPTR,#-0x20f0
   \   000055   E0           MOVX    A,@DPTR
   \   000056   54FC         ANL     A,#0xfc
   \   000058   FD           MOV     R5,A
   \   000059   D0E0         POP     A
   \   00005B   4D           ORL     A,R5
   \   00005C   90DF10       MOV     DPTR,#-0x20f0
   \   00005F   F0           MOVX    @DPTR,A
    147             return(LRWPAN_STATUS_SUCCESS);
   \   000060   7900         MOV     R1,#0x0
   \                     ??halSetRadioIEEEFrequency_1:
   \   000062   7F01         MOV     R7,#0x1
   \   000064   02....       LJMP    ?FUNC_LEAVE_XDATA
    148          }
    149          
    150          //this assumes 2.4GHz frequency

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    151          LRWPAN_STATUS_ENUM halSetChannel(BYTE channel){
   \                     halSetChannel:
   \   000000   EE           MOV     A,R6
   \   000001   C0E0         PUSH    A
   \   000003                ; Saved register size: 1
   \   000003                ; Auto size: 0
   \   000003   E9           MOV     A,R1
    152           return(halSetRadioIEEEFrequency(PHY_FREQ_2405M, channel));
   \   000004                ; Setup parameters for call to function halSetRadioIEEEFrequency
   \   000004   FA           MOV     R2,A
   \   000005   7900         MOV     R1,#0x0
   \   000007   12....       LCALL   halSetRadioIEEEFrequency
   \   00000A   D0E0         POP     A
   \   00000C   FE           MOV     R6,A
   \   00000D   22           RET
    153          }
    154          
    155          

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    156          void halGetProcessorIEEEAddress(BYTE *buf) {
   \                     halGetProcessorIEEEAddress:
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    157          #if (CC2430_FLASH_SIZE == 128)
    158            unsigned char bank;
    159            bank = MEMCTR;
   \   000004   E5C7         MOV     A,0xc7
   \   000006   FC           MOV     R4,A
    160            //switch to bank 3
    161            MEMCTR |= 0x30;
   \   000007   43C730       ORL     0xc7,#0x30
   \   00000A   E5C7         MOV     A,0xc7
    162          #endif
    163            //note that the flash programmer stores these in BIG ENDIAN order for some reason!!!
    164            buf[7] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY+0);
   \   00000C   90FFF8       MOV     DPTR,#-0x8
   \   00000F   E4           CLR     A
   \   000010   93           MOVC    A,@A+DPTR
   \   000011   8A82         MOV     DPL,R2
   \   000013   8B83         MOV     DPH,R3
   \   000015   A3           INC     DPTR
   \   000016   A3           INC     DPTR
   \   000017   A3           INC     DPTR
   \   000018   A3           INC     DPTR
   \   000019   A3           INC     DPTR
   \   00001A   A3           INC     DPTR
   \   00001B   A3           INC     DPTR
   \   00001C   F0           MOVX    @DPTR,A
    165            buf[6] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY+1);
   \   00001D   90FFF9       MOV     DPTR,#-0x7
   \   000020   E4           CLR     A
   \   000021   93           MOVC    A,@A+DPTR
   \   000022   8A82         MOV     DPL,R2
   \   000024   8B83         MOV     DPH,R3
   \   000026   A3           INC     DPTR
   \   000027   A3           INC     DPTR
   \   000028   A3           INC     DPTR
   \   000029   A3           INC     DPTR
   \   00002A   A3           INC     DPTR
   \   00002B   A3           INC     DPTR
   \   00002C   F0           MOVX    @DPTR,A
    166            buf[5] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY+2);
   \   00002D   90FFFA       MOV     DPTR,#-0x6
   \   000030   E4           CLR     A
   \   000031   93           MOVC    A,@A+DPTR
   \   000032   8A82         MOV     DPL,R2
   \   000034   8B83         MOV     DPH,R3
   \   000036   A3           INC     DPTR
   \   000037   A3           INC     DPTR
   \   000038   A3           INC     DPTR
   \   000039   A3           INC     DPTR
   \   00003A   A3           INC     DPTR
   \   00003B   F0           MOVX    @DPTR,A
    167            buf[4] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY+3);
   \   00003C   90FFFB       MOV     DPTR,#-0x5
   \   00003F   E4           CLR     A
   \   000040   93           MOVC    A,@A+DPTR
   \   000041   8A82         MOV     DPL,R2
   \   000043   8B83         MOV     DPH,R3
   \   000045   A3           INC     DPTR
   \   000046   A3           INC     DPTR
   \   000047   A3           INC     DPTR
   \   000048   A3           INC     DPTR
   \   000049   F0           MOVX    @DPTR,A
    168            buf[3] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY+4);
   \   00004A   90FFFC       MOV     DPTR,#-0x4
   \   00004D   E4           CLR     A
   \   00004E   93           MOVC    A,@A+DPTR
   \   00004F   8A82         MOV     DPL,R2
   \   000051   8B83         MOV     DPH,R3
   \   000053   A3           INC     DPTR
   \   000054   A3           INC     DPTR
   \   000055   A3           INC     DPTR
   \   000056   F0           MOVX    @DPTR,A
    169            buf[2] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY+5);
   \   000057   90FFFD       MOV     DPTR,#-0x3
   \   00005A   E4           CLR     A
   \   00005B   93           MOVC    A,@A+DPTR
   \   00005C   8A82         MOV     DPL,R2
   \   00005E   8B83         MOV     DPH,R3
   \   000060   A3           INC     DPTR
   \   000061   A3           INC     DPTR
   \   000062   F0           MOVX    @DPTR,A
    170            buf[1] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY+6);
   \   000063   90FFFE       MOV     DPTR,#-0x2
   \   000066   E4           CLR     A
   \   000067   93           MOVC    A,@A+DPTR
   \   000068   8A82         MOV     DPL,R2
   \   00006A   8B83         MOV     DPH,R3
   \   00006C   A3           INC     DPTR
   \   00006D   F0           MOVX    @DPTR,A
    171            buf[0] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY+7);
   \   00006E   90FFFF       MOV     DPTR,#-0x1
   \   000071   E4           CLR     A
   \   000072   93           MOVC    A,@A+DPTR
   \   000073   8A82         MOV     DPL,R2
   \   000075   8B83         MOV     DPH,R3
   \   000077   F0           MOVX    @DPTR,A
    172           #if (CC2430_FLASH_SIZE == 128)
    173            //resore old bank settings
    174            MEMCTR = bank;
   \   000078   8CC7         MOV     0xc7,R4
    175          #endif
    176          }
   \   00007A   D083         POP     DPH
   \   00007C   D082         POP     DPL
   \   00007E   22           RET
    177          
    178          

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    179          void halGetProcessorIEEEAddress_ASC(BYTE *buf) {
   \                     halGetProcessorIEEEAddress_ASC:
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    180          #if (CC2430_FLASH_SIZE == 128)
    181            unsigned char bank;
    182            bank = MEMCTR;
   \   000004   E5C7         MOV     A,0xc7
   \   000006   FC           MOV     R4,A
    183            //switch to bank 3
    184            MEMCTR |= 0x30;
   \   000007   43C730       ORL     0xc7,#0x30
   \   00000A   E5C7         MOV     A,0xc7
    185          #endif
    186            //note that the flash programmer stores these in BIG ENDIAN order for some reason!!!
    187            buf[0] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY+0);
   \   00000C   90FFF8       MOV     DPTR,#-0x8
   \   00000F   E4           CLR     A
   \   000010   93           MOVC    A,@A+DPTR
   \   000011   8A82         MOV     DPL,R2
   \   000013   8B83         MOV     DPH,R3
   \   000015   F0           MOVX    @DPTR,A
    188            buf[1] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY+1);
   \   000016   90FFF9       MOV     DPTR,#-0x7
   \   000019   E4           CLR     A
   \   00001A   93           MOVC    A,@A+DPTR
   \   00001B   8A82         MOV     DPL,R2
   \   00001D   8B83         MOV     DPH,R3
   \   00001F   A3           INC     DPTR
   \   000020   F0           MOVX    @DPTR,A
    189            buf[2] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY+2);
   \   000021   90FFFA       MOV     DPTR,#-0x6
   \   000024   E4           CLR     A
   \   000025   93           MOVC    A,@A+DPTR
   \   000026   8A82         MOV     DPL,R2
   \   000028   8B83         MOV     DPH,R3
   \   00002A   A3           INC     DPTR
   \   00002B   A3           INC     DPTR
   \   00002C   F0           MOVX    @DPTR,A
    190            buf[3] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY+3);
   \   00002D   90FFFB       MOV     DPTR,#-0x5
   \   000030   E4           CLR     A
   \   000031   93           MOVC    A,@A+DPTR
   \   000032   8A82         MOV     DPL,R2
   \   000034   8B83         MOV     DPH,R3
   \   000036   A3           INC     DPTR
   \   000037   A3           INC     DPTR
   \   000038   A3           INC     DPTR
   \   000039   F0           MOVX    @DPTR,A
    191            buf[4] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY+4);
   \   00003A   90FFFC       MOV     DPTR,#-0x4
   \   00003D   E4           CLR     A
   \   00003E   93           MOVC    A,@A+DPTR
   \   00003F   8A82         MOV     DPL,R2
   \   000041   8B83         MOV     DPH,R3
   \   000043   A3           INC     DPTR
   \   000044   A3           INC     DPTR
   \   000045   A3           INC     DPTR
   \   000046   A3           INC     DPTR
   \   000047   F0           MOVX    @DPTR,A
    192            buf[5] = *(unsigned char __code *)(IEEE_ADDRESS_ARRAY+5);

⌨️ 快捷键说明

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