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

📄 nrf905.lis

📁 无线nrf905(PTR8000模块)源程序环境:ICCAVR MEGA16L+11.0592M 讯通的PTR8000和PTR8000+模块
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 006A 4FB1              in R20,0xf
 006C                   .dbline 144
 006C           ;       return temp;
 006C 042F              mov R16,R20
 006E                   .dbline -2
 006E           L2:
 006E 0E940000          xcall pop_gset1
 0072                   .dbline 0 ; func end
 0072 0895              ret
 0074                   .dbsym r temp 20 c
 0074                   .dbsym r val 16 c
 0074                   .dbend
 0074                   .dbfunc e nrf905_StandBy _nrf905_StandBy fV
                        .even
 0074           _nrf905_StandBy::
 0074                   .dbline -1
 0074                   .dbline 149
 0074           ; }
 0074           ; 
 0074           ; //PwrDown->StandBy
 0074           ; void nrf905_StandBy()
 0074           ; {
 0074                   .dbline 150
 0074           ;    SET(PORTB,PWR);
 0074 C09A              sbi 0x18,0
 0076                   .dbline 151
 0076           ;    CLR(PORTB,TRXCE);
 0076 C198              cbi 0x18,1
 0078                   .dbline 152
 0078           ;    CLR(PORTB,TX_EN);
 0078 C298              cbi 0x18,2
 007A                   .dbline -2
 007A           L6:
 007A                   .dbline 0 ; func end
 007A 0895              ret
 007C                   .dbend
 007C                   .dbfunc e nrf905_Off _nrf905_Off fV
                        .even
 007C           _nrf905_Off::
 007C                   .dbline -1
 007C                   .dbline 157
 007C           ; }
 007C           ; 
 007C           ; //->PwrDown
 007C           ; void nrf905_Off()
 007C           ; {
 007C                   .dbline 158
 007C           ;   CLR(PORTB,PWR);
 007C C098              cbi 0x18,0
 007E                   .dbline -2
 007E           L7:
 007E                   .dbline 0 ; func end
 007E 0895              ret
 0080                   .dbend
 0080                   .dbfunc e nrf905_TxOn _nrf905_TxOn fV
                        .even
 0080           _nrf905_TxOn::
 0080                   .dbline -1
 0080                   .dbline 163
 0080           ; }
 0080           ; 
 0080           ; //->ShockBurst Send
 0080           ; void nrf905_TxOn()
 0080           ; {
 0080                   .dbline 164
 0080           ;   SET(PORTB,PWR);
 0080 C09A              sbi 0x18,0
 0082                   .dbline 165
 0082           ;   SET(PORTB,TX_EN);
 0082 C29A              sbi 0x18,2
 0084                   .dbline 166
 0084           ;   CLR(PORTB,TRXCE);
 0084 C198              cbi 0x18,1
 0086                   .dbline -2
 0086           L8:
 0086                   .dbline 0 ; func end
 0086 0895              ret
 0088                   .dbend
 0088                   .dbfunc e nrf905_TxSend _nrf905_TxSend fV
                        .even
 0088           _nrf905_TxSend::
 0088                   .dbline -1
 0088                   .dbline 171
 0088           ; }
 0088           ; 
 0088           ; //->ShockBurst Send
 0088           ; void nrf905_TxSend()
 0088           ; {
 0088                   .dbline 172
 0088           ;   SET(PORTB,TRXCE);
 0088 C19A              sbi 0x18,1
 008A                   .dbline 173
 008A           ;   DelayUs(20);//>10us
 008A 04E1              ldi R16,20
 008C 10E0              ldi R17,0
 008E 0E940000          xcall _DelayUs
 0092                   .dbline 174
 0092           ;   CLR(PORTB,TRXCE);//只发送一次
 0092 C198              cbi 0x18,1
 0094                   .dbline -2
 0094           L9:
 0094                   .dbline 0 ; func end
 0094 0895              ret
 0096                   .dbend
 0096                   .dbfunc e nrf905_RxOn _nrf905_RxOn fV
                        .even
 0096           _nrf905_RxOn::
 0096                   .dbline -1
 0096                   .dbline 179
 0096           ; }
 0096           ; 
 0096           ; //->ShockBurst Recv
 0096           ; void nrf905_RxOn()
 0096           ; {
 0096                   .dbline 180
 0096           ;   SET(PORTB,PWR);
 0096 C09A              sbi 0x18,0
 0098                   .dbline 181
 0098           ;   CLR(PORTB,TX_EN);//maybe first
 0098 C298              cbi 0x18,2
 009A                   .dbline 182
 009A           ;   SET(PORTB,TRXCE);
 009A C19A              sbi 0x18,1
 009C                   .dbline -2
 009C           L10:
 009C                   .dbline 0 ; func end
 009C 0895              ret
 009E                   .dbend
 009E                   .dbfunc e nrf905_Init _nrf905_Init fV
                        .even
 009E           _nrf905_Init::
 009E                   .dbline -1
 009E                   .dbline 187
 009E           ; }
 009E           ; 
 009E           ; //初始化nrf905
 009E           ; void nrf905_Init()
 009E           ; {
 009E                   .dbline 188
 009E           ;    nrf905_StandBy();
 009E EADF              xcall _nrf905_StandBy
 00A0                   .dbline 189
 00A0           ;    DelayMs(10);//!!!must >3ms
 00A0 0AE0              ldi R16,10
 00A2 0E940000          xcall _DelayMs
 00A6                   .dbline 190
 00A6           ;    nrf905_Config();
 00A6 ACDF              xcall _nrf905_Config
 00A8                   .dbline 192
 00A8           ;    
 00A8           ;    nrf905_SpiTest();//test...
 00A8 02D0              xcall _nrf905_SpiTest
 00AA                   .dbline 193
 00AA           ;    nrf905_RxOn();
 00AA F5DF              xcall _nrf905_RxOn
 00AC                   .dbline -2
 00AC           L11:
 00AC                   .dbline 0 ; func end
 00AC 0895              ret
 00AE                   .dbend
 00AE                   .dbfunc e nrf905_SpiTest _nrf905_SpiTest fV
 00AE           ;              i -> R20
                        .even
 00AE           _nrf905_SpiTest::
 00AE 0E940000          xcall push_gset1
 00B2                   .dbline -1
 00B2                   .dbline 198
 00B2           ; }
 00B2           ; 
 00B2           ; //测试:通过读配置,判断SPI操作是否正确
 00B2           ; void nrf905_SpiTest()
 00B2           ; {uchar i;
 00B2                   .dbline 199
 00B2           ;   CLR(PORTB,CSN);                   
 00B2 C498              cbi 0x18,4
 00B4                   .dbline 200
 00B4           ;   nrf905_SpiRW(RC);  //读配置
 00B4 00E1              ldi R16,16
 00B6 D4DF              xcall _nrf905_SpiRW
 00B8                   .dbline 201
 00B8           ;   for (i=0;i<10;i++)
 00B8 4427              clr R20
 00BA 0AC0              xjmp L16
 00BC           L13:
 00BC                   .dbline 202
 00BC                   .dbline 203
 00BC 0027              clr R16
 00BE D0DF              xcall _nrf905_SpiRW
 00C0 80E0              ldi R24,<_RxBuf
 00C2 90E0              ldi R25,>_RxBuf
 00C4 E42F              mov R30,R20
 00C6 FF27              clr R31
 00C8 E80F              add R30,R24
 00CA F91F              adc R31,R25
 00CC 0083              std z+0,R16
 00CE                   .dbline 204
 00CE           L14:
 00CE                   .dbline 201
 00CE 4395              inc R20
 00D0           L16:
 00D0                   .dbline 201
 00D0 4A30              cpi R20,10
 00D2 A0F3              brlo L13
 00D4                   .dbline 205
 00D4           ;   { 
 00D4           ;     RxBuf[i]=  nrf905_SpiRW(0);//read from nrf905
 00D4           ;   }
 00D4           ;   SET(PORTB,CSN);  
 00D4 C49A              sbi 0x18,4
 00D6                   .dbline -2
 00D6           L12:
 00D6 0E940000          xcall pop_gset1
 00DA                   .dbline 0 ; func end
 00DA 0895              ret
 00DC                   .dbsym r i 20 c
 00DC                   .dbend
 00DC                   .dbfunc e nrf905_SetTxAddr _nrf905_SetTxAddr fV
                        .even
 00DC           _nrf905_SetTxAddr::
 00DC                   .dbline -1
 00DC                   .dbline 210
 00DC           ; }
 00DC           ; 
 00DC           ; //写Tx地址
 00DC           ; void nrf905_SetTxAddr()
 00DC           ; {
 00DC                   .dbline 211
 00DC           ;   CLR(PORTB,CSN);                   
 00DC C498              cbi 0x18,4
 00DE                   .dbline 212
 00DE           ;   nrf905_SpiRW(WTA);  //写Tx地址  

⌨️ 快捷键说明

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