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

📄 nrf905config.lis

📁 包含无线收发模块 NREF905的所有功能库函数 本库函数与外部函数接口简单易用
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .even
 0080           _nrf905_TxSend::
 0080                   .dbline -1
 0080                   .dbline 64
 0080           ; }
 0080           ; 
 0080           ; //->ShockBurst Send
 0080           ; void nrf905_TxSend()
 0080           ; {
 0080                   .dbline 65
 0080           ;   SET(PORTB,TRXCE);
 0080 C19A              sbi 0x18,1
 0082                   .dbline 66
 0082           ;   DelayUs(20);//>10us
 0082 04E1              ldi R16,20
 0084 10E0              ldi R17,0
 0086 7DD0              rcall _DelayUs
 0088                   .dbline 67
 0088           ;   CLR(PORTB,TRXCE);//只发送一次
 0088 C198              cbi 0x18,1
 008A                   .dbline -2
 008A           L9:
 008A                   .dbline 0 ; func end
 008A 0895              ret
 008C                   .dbend
 008C                   .dbfunc e nrf905_RxOn _nrf905_RxOn fV
                        .even
 008C           _nrf905_RxOn::
 008C                   .dbline -1
 008C                   .dbline 72
 008C           ; }
 008C           ; 
 008C           ; //->ShockBurst Recv
 008C           ; void nrf905_RxOn()
 008C           ; {
 008C                   .dbline 73
 008C           ;   SET(PORTB,PWRUP);
 008C C09A              sbi 0x18,0
 008E                   .dbline 74
 008E           ;   CLR(PORTB,TX_EN);      //maybe first
 008E C698              cbi 0x18,6
 0090                   .dbline 75
 0090           ;   SET(PORTB,TRXCE);
 0090 C19A              sbi 0x18,1
 0092                   .dbline -2
 0092           L10:
 0092                   .dbline 0 ; func end
 0092 0895              ret
 0094                   .dbend
 0094                   .dbfunc e nrf905_Init _nrf905_Init fV
                        .even
 0094           _nrf905_Init::
 0094                   .dbline -1
 0094                   .dbline 80
 0094           ; }
 0094           ; 
 0094           ; //初始化nrf905
 0094           ; void nrf905_Init()
 0094           ; {
 0094                   .dbline 81
 0094           ;    nrf905_StandBy();
 0094 EBDF              rcall _nrf905_StandBy
 0096                   .dbline 82
 0096           ;    DelayMs(10);//!!!must >3ms
 0096 0AE0              ldi R16,10
 0098 68D0              rcall _DelayMs
 009A                   .dbline 83
 009A           ;    nrf905_Config();
 009A B2DF              rcall _nrf905_Config
 009C                   .dbline 85
 009C           ;    
 009C           ;    nrf905_SpiTest();//test...
 009C 02D0              rcall _nrf905_SpiTest
 009E                   .dbline 86
 009E           ;    nrf905_RxOn();
 009E F6DF              rcall _nrf905_RxOn
 00A0                   .dbline -2
 00A0           L11:
 00A0                   .dbline 0 ; func end
 00A0 0895              ret
 00A2                   .dbend
 00A2                   .dbfunc e nrf905_SpiTest _nrf905_SpiTest fV
 00A2           ;              i -> R20
                        .even
 00A2           _nrf905_SpiTest::
 00A2 00D0              rcall push_gset1
 00A4                   .dbline -1
 00A4                   .dbline 91
 00A4           ; }
 00A4           ; 
 00A4           ; //测试:通过读配置,判断SPI操作是否正确
 00A4           ; void nrf905_SpiTest()
 00A4           ; {uchar i;
 00A4                   .dbline 92
 00A4           ;   CLR(PORTB,CSN);                   
 00A4 C298              cbi 0x18,2
 00A6                   .dbline 93
 00A6           ;   nrf905_SpiRW(RC);  //读配置
 00A6 00E1              ldi R16,16
 00A8 D9DF              rcall _nrf905_SpiRW
 00AA                   .dbline 94
 00AA           ;   for (i=0;i<10;i++)
 00AA 4427              clr R20
 00AC 0AC0              rjmp L16
 00AE           L13:
 00AE                   .dbline 95
 00AE                   .dbline 96
 00AE 0027              clr R16
 00B0 D5DF              rcall _nrf905_SpiRW
 00B2 80E0              ldi R24,<_RxBuf
 00B4 90E0              ldi R25,>_RxBuf
 00B6 E42F              mov R30,R20
 00B8 FF27              clr R31
 00BA E80F              add R30,R24
 00BC F91F              adc R31,R25
 00BE 0083              std z+0,R16
 00C0                   .dbline 97
 00C0           L14:
 00C0                   .dbline 94
 00C0 4395              inc R20
 00C2           L16:
 00C2                   .dbline 94
 00C2 4A30              cpi R20,10
 00C4 A0F3              brlo L13
 00C6                   .dbline 98
 00C6           ;   { 
 00C6           ;     RxBuf[i]=  nrf905_SpiRW(0);//read from nrf905
 00C6           ;   }
 00C6           ;   SET(PORTB,CSN);  
 00C6 C29A              sbi 0x18,2
 00C8                   .dbline -2
 00C8           L12:
 00C8 00D0              rcall pop_gset1
 00CA                   .dbline 0 ; func end
 00CA 0895              ret
 00CC                   .dbsym r i 20 c
 00CC                   .dbend
 00CC                   .dbfunc e nrf905_SetTxAddr _nrf905_SetTxAddr fV
                        .even
 00CC           _nrf905_SetTxAddr::
 00CC                   .dbline -1
 00CC                   .dbline 103
 00CC           ; }
 00CC           ; 
 00CC           ; //写Tx地址
 00CC           ; void nrf905_SetTxAddr()
 00CC           ; {
 00CC                   .dbline 104
 00CC           ;   CLR(PORTB,CSN);                   
 00CC C298              cbi 0x18,2
 00CE                   .dbline 105
 00CE           ;   nrf905_SpiRW(WTA);  //写Tx地址  
 00CE 02E2              ldi R16,34
 00D0 C5DF              rcall _nrf905_SpiRW
 00D2                   .dbline 106
 00D2           ;   nrf905_SpiRW(TX_ADDRESS_0);
 00D2 02E1              ldi R16,18
 00D4 C3DF              rcall _nrf905_SpiRW
 00D6                   .dbline 107
 00D6           ;   nrf905_SpiRW(TX_ADDRESS_1);
 00D6 04E3              ldi R16,52
 00D8 C1DF              rcall _nrf905_SpiRW
 00DA                   .dbline 108
 00DA           ;   nrf905_SpiRW(TX_ADDRESS_2);
 00DA 06E5              ldi R16,86
 00DC BFDF              rcall _nrf905_SpiRW
 00DE                   .dbline 109
 00DE           ;   nrf905_SpiRW(TX_ADDRESS_3);
 00DE 08E7              ldi R16,120
 00E0 BDDF              rcall _nrf905_SpiRW
 00E2                   .dbline 110
 00E2           ;   SET(PORTB,CSN);  
 00E2 C29A              sbi 0x18,2
 00E4                   .dbline -2
 00E4           L17:
 00E4                   .dbline 0 ; func end
 00E4 0895              ret
 00E6                   .dbend
 00E6                   .dbfunc e nrf905_SetData _nrf905_SetData fV
 00E6           ;              i -> R20
                        .even
 00E6           _nrf905_SetData::
 00E6 00D0              rcall push_gset1
 00E8                   .dbline -1
 00E8                   .dbline 115
 00E8           ; }
 00E8           ; 
 00E8           ; //写Tx数据
 00E8           ; void nrf905_SetData()
 00E8           ; {uchar i;
 00E8                   .dbline 117
 00E8           ; 
 00E8           ;   CLR(PORTB,CSN);                   
 00E8 C298              cbi 0x18,2
 00EA                   .dbline 118
 00EA           ;   nrf905_SpiRW(WTP);  //写TxPayload 
 00EA 00E2              ldi R16,32
 00EC B7DF              rcall _nrf905_SpiRW
 00EE                   .dbline 119
 00EE           ;   for (i=0;i<SIZE;i++)
 00EE 4427              clr R20
 00F0 09C0              rjmp L22
 00F2           L19:
 00F2                   .dbline 120
 00F2                   .dbline 121
 00F2 80E0              ldi R24,<_TxBuf
 00F4 90E0              ldi R25,>_TxBuf
 00F6 E42F              mov R30,R20
 00F8 FF27              clr R31
 00FA E80F              add R30,R24
 00FC F91F              adc R31,R25
 00FE 0081              ldd R16,z+0
 0100 ADDF              rcall _nrf905_SpiRW
 0102                   .dbline 122
 0102           L20:
 0102                   .dbline 119
 0102 4395              inc R20
 0104           L22:
 0104                   .dbline 119
 0104 4032              cpi R20,32
 0106 A8F3              brlo L19
 0108                   .dbline 124
 0108           ;   { 
 0108           ;     nrf905_SpiRW(TxBuf[i]);
 0108           ;   }
 0108           ;   
 0108           ;   SET(PORTB,CSN);  
 0108 C29A              sbi 0x18,2
 010A                   .dbline -2
 010A           L18:
 010A 00D0              rcall pop_gset1
 010C                   .dbline 0 ; func end
 010C 0895              ret
 010E                   .dbsym r i 20 c
 010E                   .dbend
 010E                   .dbfunc e nrf905_WaitSended _nrf905_WaitSended fV
                        .even
 010E           _nrf905_WaitSended::
 010E                   .dbline -1
 010E                   .dbline 129
 010E           ; }
 010E           ; 
 010E           ; //等待发送结束
 010E           ; void nrf905_WaitSended()
 010E           ; {
 010E           L24:
 010E                   .dbline 130
 010E           L25:
 010E                   .dbline 130
 010E           ;    while ((PINC&(1<<DR))==0);
 010E 9A9B              sbis 0x13,2
 0110 FECF              rjmp L24
 0112                   .dbline -2
 0112           L23:
 0112                   .dbline 0 ; func end
 0112 0895              ret
 0114                   .dbend
 0114                   .dbfunc e nrf905_SendData _nrf905_SendData fV
                        .even
 0114           _nrf905_SendData::
 0114                   .dbline -1
 0114                   .dbline 135
 0114           ; }
 0114           ; 
 0114           ; //发送TxBuf中的数据
 0114           ; void nrf905_SendData()
 0114           ; {
 0114                   .dbline 136
 0114           ;    nrf905_TxOn();      //切换到发送模式
 0114 B1DF              rcall _nrf905_TxOn
 0116                   .dbline 137

⌨️ 快捷键说明

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