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

📄 blind_node.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   000421   7A34         MOV     R2,#0x34
   \   000423   7B12         MOV     R3,#0x12
   \   000425   90....       MOV     DPTR,#(SendPosition & 0xffff)
   \   000428   74..         MOV     A,#((SendPosition >> 16) & 0xff)
   \   00042A   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    288                   SendDebugInfo(xUpperLeft, yUpperLeft);
   \   00042D                ; Setup parameters for call to function SendDebugInfo
   \   00042D   7402         MOV     A,#0x2
   \   00042F   12....       LCALL   ?XSTACK_DISP0_8
   \   000432   E0           MOVX    A,@DPTR
   \   000433   FC           MOV     R4,A
   \   000434   A3           INC     DPTR
   \   000435   E0           MOVX    A,@DPTR
   \   000436   FD           MOV     R5,A
   \   000437   85..82       MOV     DPL,?XSP + 0
   \   00043A   85..83       MOV     DPH,?XSP + 1
   \   00043D   E0           MOVX    A,@DPTR
   \   00043E   FA           MOV     R2,A
   \   00043F   A3           INC     DPTR
   \   000440   E0           MOVX    A,@DPTR
   \   000441   FB           MOV     R3,A
   \   000442   90....       MOV     DPTR,#(SendDebugInfo & 0xffff)
   \   000445   74..         MOV     A,#((SendDebugInfo >> 16) & 0xff)
   \   000447   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    289          
    290                   if (blinkLed){
   \   00044A   90....       MOV     DPTR,#blinkLed
   \   00044D   E0           MOVX    A,@DPTR
   \   00044E   6017         JZ      ??RunBlindNode_27
    291                      // if a "blink led message" has been sent from PC, it will not be handled untill blind node
    292                      // reach this state
    293                      blinkLed = FALSE;
   \   000450   E4           CLR     A
   \   000451   F0           MOVX    @DPTR,A
    294                      LED1 = LED_ON;
   \   000452   C290         CLR     0x90.0
    295                      ledBlinkCounter = 0;
   \   000454   90....       MOV     DPTR,#ledBlinkCounter
   \   000457   F0           MOVX    @DPTR,A
    296                      AddToSleepTimer(LED_BLINK_TIME);
   \   000458                ; Setup parameters for call to function AddToSleepTimer
   \   000458   7A64         MOV     R2,#0x64
   \   00045A   FB           MOV     R3,A
   \   00045B   90....       MOV     DPTR,#(AddToSleepTimer & 0xffff)
   \   00045E   74..         MOV     A,#((AddToSleepTimer >> 16) & 0xff)
   \   000460   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    297                      blindNodeState = BLINK_LED_STATE;
   \   000463   7409         MOV     A,#0x9
   \   000465   800E         SJMP    ??RunBlindNode_28
    298                   }
    299                   else
    300                   {
    301                      AddToSleepTimer(BLIND_NODE_POWER_DOWN_PERIODE);
   \                     ??RunBlindNode_27:
   \   000467                ; Setup parameters for call to function AddToSleepTimer
   \   000467   7AB8         MOV     R2,#-0x48
   \   000469   7B0B         MOV     R3,#0xb
   \   00046B   90....       MOV     DPTR,#(AddToSleepTimer & 0xffff)
   \   00046E   74..         MOV     A,#((AddToSleepTimer >> 16) & 0xff)
   \   000470   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    302                      blindNodeState = SLEEP_STATE;
   \   000473   7408         MOV     A,#0x8
   \                     ??RunBlindNode_28:
   \   000475   90....       MOV     DPTR,#blindNodeState
   \   000478   F0           MOVX    @DPTR,A
    303                   }
    304                   INT_SETFLAG(INUM_ST, INT_CLR);
   \   000479   02....       LJMP    ??RunBlindNode_18 & 0xFFFF
    305                   INT_ENABLE(INUM_ST, INT_ON);
    306                   break;
    307                case BLINK_LED_STATE:
    308                   // state transition handled by Sleep Timer
    309                case SLEEP_STATE:
    310                   // state transition handled by Sleep Timer
    311          #ifdef USE_PM
    312                   mpmSetAndResumeMacAndCpuPowerMode (POWER_MODE_PM2, RESUME_MODE_PARTS_PRESERVED, FALSE);
   \                     ??RunBlindNode_14:
   \   00047C                ; Setup parameters for call to function mpmSetAndResumeMacAndCpuPowerMode
   \   00047C   7B00         MOV     R3,#0x0
   \   00047E   7A01         MOV     R2,#0x1
   \   000480   7901         MOV     R1,#0x1
   \   000482   12....       LCALL   mpmSetAndResumeMacAndCpuPowerMode & 0xFFFF
   \   000485   02....       LJMP    ??RunBlindNode_0 & 0xFFFF
    313          #endif
    314                   break;
    315                default:
    316                   blindNodeState = INIT_BCAST;
   \                     ??RunBlindNode_6:
   \   000488   E4           CLR     A
   \   000489   02....       LJMP    ??RunBlindNode_16 & 0xFFFF
    317                   break;
    318                }
    319             }
    320          }
    321          
    322          
    323          /******************************************************************************
    324          *
    325          * This function will handle sleep timer interrupts for blind node
    326          ******************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    327          void ST_IRQ_BlindNode(void)
   \                     ST_IRQ_BlindNode:
    328          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    329             INT_SETFLAG(INUM_ST, INT_CLR);
   \   000004   C2C7         CLR     0xc0.7
    330             INT_ENABLE(INUM_ST, INT_OFF);
   \   000006   C2AD         CLR     0xa8.5
    331          
    332             switch (blindNodeState){
   \   000008   90....       MOV     DPTR,#blindNodeState
   \   00000B   E0           MOVX    A,@DPTR
   \   00000C   12....       LCALL   ?UC_SWITCH_DENSE
   \                     `?<Jumptable for ST_IRQ_BlindNode>_0`:
   \   00000F   01           DB        1
   \   000010   08           DB        8
   \   000011   ....         DW        ??ST_IRQ_BlindNode_0
   \   000013   ....         DW        ??ST_IRQ_BlindNode_1
   \   000015   ....         DW        ??ST_IRQ_BlindNode_2
   \   000017   ....         DW        ??ST_IRQ_BlindNode_1
   \   000019   ....         DW        ??ST_IRQ_BlindNode_1
   \   00001B   ....         DW        ??ST_IRQ_BlindNode_1
   \   00001D   ....         DW        ??ST_IRQ_BlindNode_3
   \   00001F   ....         DW        ??ST_IRQ_BlindNode_1
   \   000021   ....         DW        ??ST_IRQ_BlindNode_0
   \   000023   ....         DW        ??ST_IRQ_BlindNode_4
    333             case BCAST_REQUEST:
    334                break;
    335             case RECEIVE_BCAST_REPLY:
    336                blindNodeState = CHECK_REPLIES;
   \                     ??ST_IRQ_BlindNode_2:
   \   000025   7403         MOV     A,#0x3
   \   000027   8044         SJMP    ??ST_IRQ_BlindNode_5
    337                break;
    338             case CHECK_REPLIES:
    339                break;
    340             case SETUP_DATA_COLLECTING:
    341                break;
    342             case REQUEST_REF_NODE_PACKET:
    343                break;
    344             case RECEIVE_REF_NODES_PACKET:
    345                blindNodeState = REQUEST_REF_NODE_PACKET;
   \                     ??ST_IRQ_BlindNode_3:
   \   000029   7405         MOV     A,#0x5
   \   00002B   90....       MOV     DPTR,#blindNodeState
   \   00002E   F0           MOVX    @DPTR,A
    346                nbrOfReqTimeOuts++;
   \   00002F   90....       MOV     DPTR,#nbrOfReqTimeOuts
   \   000032   E0           MOVX    A,@DPTR
   \   000033   04           INC     A
   \   000034   803A         SJMP    ??ST_IRQ_BlindNode_6
    347                break;
    348             case ESTIMATE_LOCATION:
    349                break;
    350             case BLINK_LED_STATE:
    351                LED1 ^= 1;
   \                     ??ST_IRQ_BlindNode_4:
   \   000036   639001       XRL     0x90,#0x1
   \   000039   E590         MOV     A,0x90
    352                ledBlinkCounter++;
   \   00003B   90....       MOV     DPTR,#ledBlinkCounter
   \   00003E   E0           MOVX    A,@DPTR
   \   00003F   04           INC     A
   \   000040   F0           MOVX    @DPTR,A
    353                if(ledBlinkCounter > NBR_OF_LED_BLINK * 2){
   \   000041   C3           CLR     C
   \   000042   9415         SUBB    A,#0x15
   \   000044   4016         JC      ??ST_IRQ_BlindNode_7
    354                   blindNodeState = SLEEP_STATE;
   \   000046   7408         MOV     A,#0x8
   \   000048   90....       MOV     DPTR,#blindNodeState
   \   00004B   F0           MOVX    @DPTR,A
    355                   AddToSleepTimer(BLIND_NODE_POWER_DOWN_PERIODE);
   \   00004C                ; Setup parameters for call to function AddToSleepTimer
   \   00004C   7AB8         MOV     R2,#-0x48
   \   00004E   7B0B         MOV     R3,#0xb
   \   000050   90....       MOV     DPTR,#(AddToSleepTimer & 0xffff)
   \   000053   74..         MOV     A,#((AddToSleepTimer >> 16) & 0xff)
   \   000055   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    356                   LED1 = LED_OFF;
   \   000058   D290         SETB    0x90.0
   \   00005A   800C         SJMP    ??ST_IRQ_BlindNode_8
    357                }
    358                else
    359                {
    360                   AddToSleepTimer(LED_BLINK_TIME);
   \                     ??ST_IRQ_BlindNode_7:
   \   00005C                ; Setup parameters for call to function AddToSleepTimer
   \   00005C   7A64         MOV     R2,#0x64
   \   00005E   7B00         MOV     R3,#0x0
   \   000060   90....       MOV     DPTR,#(AddToSleepTimer & 0xffff)
   \   000063   74..         MOV     A,#((AddToSleepTimer >> 16) & 0xff)
   \   000065   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    361                }
    362                INT_ENABLE(INUM_ST, INT_ON);
   \                     ??ST_IRQ_BlindNode_8:
   \   000068   D2AD         SETB    0xa8.5
   \   00006A   8005         SJMP    ??ST_IRQ_BlindNode_1
    363                break;
    364             case SLEEP_STATE:
    365                blindNodeState = INIT_BCAST;
   \                     ??ST_IRQ_BlindNode_0:
   \   00006C   E4           CLR     A
   \                     ??ST_IRQ_BlindNode_5:
   \   00006D   90....       MOV     DPTR,#blindNodeState
   \                     ??ST_IRQ_BlindNode_6:
   \   000070   F0           MOVX    @DPTR,A
    366                break;
    367             default:
    368                blindNodeState = INIT_BCAST;
    369                break;
    370             }
    371          }
   \                     ??ST_IRQ_BlindNode_1:
   \   000071   80..         SJMP    ??Subroutine0_0

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine0:
   \   000000   12....       LCALL   ?DEALLOC_XSTACK8
   \                     ??Subroutine0_0:
   \   000003   D083         POP     DPH
   \   000005   D082         POP     DPL
   \   000007   02....       LJMP    ?BRET
    372          
    373          
    374          /******************************************************************************
    375          *
    376          * This function assum that allRefNodesInRange is approximately sorted by RSSI
    377          * value
    378          *
    379          * Build a new array (refNodesUsable) with all short addresses that should be
    380          * used and calculate offset
    381          *
    382          ******************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    383          UINT8 ChooseNodesToUse(UINT16_2 xUpperLeft, UINT16_2 yUpperLeft)
   \                     ChooseNodesToUse:
    384          {
   \   000000   74F6         MOV     A,#-0xa
   \   000002   12....      

⌨️ 快捷键说明

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