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

📄 nrf905_jinju.lis

📁 监测高压电电流
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 01DA 87BB              out 0x17,R24
 01DC                   .dbline 348
 01DC           ;       MISO_H;
 01DC C49A              sbi 0x18,4
 01DE                   .dbline 349
 01DE           ;       CSN_H;
 01DE C29A              sbi 0x18,2
 01E0                   .dbline 353
 01E0           ;       //      Enable SPI,Master,Set clock rate fck/16,interrupt enable
 01E0           ; //    SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<SPIE)|(1<<CPHA);
 01E0           ; //    SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<SPIE);
 01E0           ;       SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
 01E0 81E5              ldi R24,81
 01E2 8DB9              out 0xd,R24
 01E4                   .dbline 355
 01E4           ; //    SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<CPHA);
 01E4           ;       SPSR = 0x00;
 01E4 2224              clr R2
 01E6 2EB8              out 0xe,R2
 01E8                   .dbline 356
 01E8           ;       temp = SPSR;
 01E8 0EB1              in R16,0xe
 01EA                   .dbline 357
 01EA           ;       temp = SPCR;
 01EA 0DB1              in R16,0xd
 01EC                   .dbline 358
 01EC           ;       SEI();
 01EC 7894              sei
 01EE                   .dbline -2
 01EE           L82:
 01EE                   .dbline 0 ; func end
 01EE 0895              ret
 01F0                   .dbsym r temp 16 c
 01F0                   .dbend
 01F0                   .dbfunc e SPI_Char _SPI_Char fV
 01F0           ;              c -> R18
 01F0           ;         rxflag -> R16
                        .even
 01F0           _SPI_Char::
 01F0                   .dbline -1
 01F0                   .dbline 363
 01F0           ; }
 01F0           ; 
 01F0           ; /////////////////////////////////////////////////////////////
 01F0           ; void SPI_Char(BYTE rxflag,char c)
 01F0           ; {
 01F0                   .dbline 364
 01F0           ;       SPDR = c;
 01F0 2FB9              out 0xf,R18
 01F2           L84:
 01F2                   .dbline 365
 01F2           ;       while(!(SPSR & (1<<SPIF)));
 01F2           L85:
 01F2                   .dbline 365
 01F2 779B              sbis 0xe,7
 01F4 FECF              rjmp L84
 01F6           X18:
 01F6                   .dbline 367
 01F6           ; 
 01F6           ;       if ( rxflag )   {
 01F6 0023              tst R16
 01F8 79F0              breq L87
 01FA           X19:
 01FA                   .dbline 367
 01FA                   .dbline 368
 01FA           ;               spi_rxbuf[spi_rxpt] = SPDR;
 01FA 80E0              ldi R24,<_spi_rxbuf
 01FC 90E0              ldi R25,>_spi_rxbuf
 01FE E0910900          lds R30,_spi_rxpt
 0202 FF27              clr R31
 0204 E80F              add R30,R24
 0206 F91F              adc R31,R25
 0208 2FB0              in R2,0xf
 020A 2082              std z+0,R2
 020C                   .dbline 369
 020C           ;               spi_rxpt = (spi_rxpt+1)&SPI_BUF_LEN1;
 020C 80910900          lds R24,_spi_rxpt
 0210 8F5F              subi R24,255    ; addi 1
 0212 8F70              andi R24,15
 0214 80930900          sts _spi_rxpt,R24
 0218                   .dbline 370
 0218           ;       }
 0218           L87:
 0218                   .dbline -2
 0218           L83:
 0218                   .dbline 0 ; func end
 0218 0895              ret
 021A                   .dbsym r c 18 c
 021A                   .dbsym r rxflag 16 c
 021A                   .dbend
 021A                   .dbfunc e nrF905_PowerOff_Mode _nrF905_PowerOff_Mode fV
                        .even
 021A           _nrF905_PowerOff_Mode::
 021A                   .dbline -1
 021A                   .dbline 375
 021A           ; }
 021A           ; 
 021A           ; /////////////////////////////////////////////////////////////
 021A           ; void nrF905_PowerOff_Mode()
 021A           ; {
 021A                   .dbline 376
 021A           ;       PWR_UP_L;
 021A C098              cbi 0x18,0
 021C                   .dbline -2
 021C           L89:
 021C                   .dbline 0 ; func end
 021C 0895              ret
 021E                   .dbend
 021E                   .dbfunc e nrF905_Standby_Mode _nrF905_Standby_Mode fV
                        .even
 021E           _nrF905_Standby_Mode::
 021E                   .dbline -1
 021E                   .dbline 381
 021E           ; }
 021E           ; 
 021E           ; /////////////////////////////////////////////////////////////
 021E           ; void nrF905_Standby_Mode()
 021E           ; {
 021E                   .dbline 382
 021E           ;       PWR_UP_H;
 021E C09A              sbi 0x18,0
 0220                   .dbline 383
 0220           ;       TRX_CE_L;
 0220 9698              cbi 0x12,6
 0222                   .dbline -2
 0222           L90:
 0222                   .dbline 0 ; func end
 0222 0895              ret
 0224                   .dbend
 0224                   .dbfunc e nrF905_TX_Mode _nrF905_TX_Mode fV
                        .even
 0224           _nrF905_TX_Mode::
 0224                   .dbline -1
 0224                   .dbline 388
 0224           ; }
 0224           ; 
 0224           ; /////////////////////////////////////////////////////////////
 0224           ; void nrF905_TX_Mode()
 0224           ; {
 0224                   .dbline 389
 0224           ;       PWR_UP_H;
 0224 C09A              sbi 0x18,0
 0226                   .dbline 390
 0226           ;       TX_EN_H;
 0226 959A              sbi 0x12,5
 0228                   .dbline 391
 0228           ;       TRX_CE_L;
 0228 9698              cbi 0x12,6
 022A                   .dbline -2
 022A           L91:
 022A                   .dbline 0 ; func end
 022A 0895              ret
 022C                   .dbend
 022C                   .dbfunc e nrF905_RX_Mode _nrF905_RX_Mode fV
                        .even
 022C           _nrF905_RX_Mode::
 022C                   .dbline -1
 022C                   .dbline 396
 022C           ; }
 022C           ; 
 022C           ; /////////////////////////////////////////////////////////////
 022C           ; void nrF905_RX_Mode()
 022C           ; {
 022C                   .dbline 397
 022C           ;       PWR_UP_H;
 022C C09A              sbi 0x18,0
 022E                   .dbline 398
 022E           ;       TX_EN_L;
 022E 9598              cbi 0x12,5
 0230                   .dbline 399
 0230           ;       TRX_CE_H;
 0230 969A              sbi 0x12,6
 0232                   .dbline 400
 0232           ;       us(650);
 0232 0AE8              ldi R16,650
 0234 12E0              ldi R17,2
 0236 66DF              rcall _us
 0238                   .dbline -2
 0238           L92:
 0238                   .dbline 0 ; func end
 0238 0895              ret
 023A                   .dbend
 023A                   .dbfunc e spi_handle _spi_handle fc
 023A           ;            len -> R22
 023A           ;              i -> R20
 023A           ;            cmd -> R10
                        .even
 023A           _spi_handle::
 023A 00D0              rcall push_xgsetF00C
 023C A02E              mov R10,R16
 023E                   .dbline -1
 023E                   .dbline 405
 023E           ; }
 023E           ; 
 023E           ; /////////////////////////////////////////////////////////////
 023E           ; BYTE spi_handle(BYTE cmd)
 023E           ; {
 023E                   .dbline 407
 023E           ;       BYTE    len,i;
 023E           ;       switch(cmd)              {
 023E 4A2D              mov R20,R10
 0240 5527              clr R21
 0242 4031              cpi R20,16
 0244 E0E0              ldi R30,0
 0246 5E07              cpc R21,R30
 0248 99F0              breq L97
 024A           X20:
 024A 4031              cpi R20,16
 024C E0E0              ldi R30,0
 024E 5E07              cpc R21,R30
 0250 0CF4              brge X31
 0252 6CC0              rjmp L94
 0254           X31:
 0254           X21:
 0254           L122:
 0254 4132              cpi R20,33
 0256 E0E0              ldi R30,0
 0258 5E07              cpc R21,R30
 025A 09F4              brne X32
 025C 4DC0              rjmp L114
 025E           X32:
 025E           X22:
 025E 4332              cpi R20,35
 0260 E0E0              ldi R30,0
 0262 5E07              cpc R21,R30
 0264 61F1              breq L106
 0266           X23:
 0266 4432              cpi R20,36
 0268 E0E0              ldi R30,0
 026A 5E07              cpc R21,R30
 026C D1F0              breq L104
 026E           X24:
 026E 5EC0              rjmp L94
 0270           L97:
 0270                   .dbline 409
 0270           ;       case R_CONFIG:
 0270           ;               len = 10;
 0270 6AE0              ldi R22,10
 0272                   .dbline 410
 0272           ;               for ( i=0; i<10; i++ ) {
 0272 4427              clr R20
 0274 13C0              rjmp L101
 0276           L98:
 0276                   .dbline 410
 0276                   .dbline 411
 0276           ;                       if ( Register[i] != spi_rxbuf[i] )      return 1;
 0276 80E0              ldi R24,<_spi_rxbuf
 0278 90E0              ldi R25,>_spi_rxbuf
 027A E42F              mov R30,R20
 027C FF27              clr R31
 027E E80F              add R30,R24
 0280 F91F              adc R31,R25
 0282 2080              ldd R2,z+0
 0284 80E0              ldi R24,<_Register
 0286 90E0              ldi R25,>_Register
 0288 E42F              mov R30,R20
 028A FF27              clr R31
 028C E80F              add R30,R24
 028E F91F              adc R31,R25
 0290 3080              ldd R3,z+0
 0292 3214              cp R3,R2
 0294 11F0              breq L102
 0296           X25:
 0296                   .dbline 411
 0296 01E0              ldi R16,1
 0298 4BC0              rjmp L93
 029A           L102:
 029A                   .dbline 412
 029A           ;               }
 029A           L99:
 029A                   .dbline 410
 029A 4395              inc R20
 029C           L101:
 029C                   .dbline 410
 029C 4A30              cpi R20,10
 029E 58F3              brlo L98
 02A0           X26:
 02A0                   .dbline 413
 02A0           ;               break;
 02A0 45C0              rjmp L95
 02A2           L104:
 02A2                   .dbline 415
 02A2           ;       case R_RX_PAYLOAD:
 02A2           ;               len = Register[3] & 0x3f;
 02A2 60918400          lds R22,_Register+3
 02A6 6F73              andi R22,63
 02A8                   .dbline 419
 02A8           ; //            uart_TxChar(len);
 02A8           ; //            rxpt = 0;
 02A8           ; //            handlept = 0;
 02A8           ;               FlashFlag = FLASHLIMIT;
 02A8 82E0              ldi R24,2
 02AA 80930500          sts _FlashFlag,R24
 02AE                   .dbline 426
 02AE           ; /*            for ( i=0; i<len; i++ )  {
 02AE           ;                       uart_TxChar(spi_rxbuf[i]);
 02AE           ;               }
 02AE           ; */
 02AE           ; //            rxpt = len;
 02AE           ;         
 02AE           ;               handle();
 02AE 16D1              rcall _handle
 02B0                   .dbline 427
 02B0           ;               NoDataCount = 0;
 02B0 2224              clr R2
 02B2 3324              clr R3
 02B4 30920300          sts _NoDataCount+1,R3
 02B8 20920200          sts _NoDataCount,R2
 02BC                   .dbline 428
 02BC           ;               break;
 02BC 37C0              rjmp L95
 02BE           L106:
 02BE                   .dbline 430
 02BE           ;       case R_TX_ADDRESS:
 02BE           ;               len = (Register[2] >> 4) & 0x07;
 02BE 60918300          lds R22,_Register+2
 02C2 6295              swap R22
 02C4 6F70              andi R22,#0x0F
 02C6 6770              andi R22,7

⌨️ 快捷键说明

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