📄 nrf905.lis
字号:
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 + -