📄 nrf905.lis
字号:
0062 ; return temp;
0062 0A2D mov R16,R10
0064 .dbline -2
0064 L2:
0064 .dbline 0 ; func end
0064 A990 ld R10,y+
0066 0895 ret
0068 .dbsym r temp 10 c
0068 .dbsym r val 16 c
0068 .dbend
0068 .dbfunc e nrf905_StandBy _nrf905_StandBy fV
.even
0068 _nrf905_StandBy::
0068 .dbline -1
0068 .dbline 149
0068 ; }
0068 ;
0068 ; //PwrDown->StandBy
0068 ; void nrf905_StandBy()
0068 ; {
0068 .dbline 150
0068 ; SET(PORTB,PWR);
0068 C09A sbi 0x18,0
006A .dbline 151
006A ; CLR(PORTB,TRXCE);
006A C198 cbi 0x18,1
006C .dbline 152
006C ; CLR(PORTB,TX_EN);
006C C298 cbi 0x18,2
006E .dbline -2
006E L6:
006E .dbline 0 ; func end
006E 0895 ret
0070 .dbend
0070 .dbfunc e nrf905_Off _nrf905_Off fV
.even
0070 _nrf905_Off::
0070 .dbline -1
0070 .dbline 157
0070 ; }
0070 ;
0070 ; //->PwrDown
0070 ; void nrf905_Off()
0070 ; {
0070 .dbline 158
0070 ; CLR(PORTB,PWR);
0070 C098 cbi 0x18,0
0072 .dbline -2
0072 L7:
0072 .dbline 0 ; func end
0072 0895 ret
0074 .dbend
0074 .dbfunc e nrf905_TxOn _nrf905_TxOn fV
.even
0074 _nrf905_TxOn::
0074 .dbline -1
0074 .dbline 163
0074 ; }
0074 ;
0074 ; //->ShockBurst Send
0074 ; void nrf905_TxOn()
0074 ; {
0074 .dbline 164
0074 ; SET(PORTB,PWR);
0074 C09A sbi 0x18,0
0076 .dbline 165
0076 ; SET(PORTB,TX_EN);
0076 C29A sbi 0x18,2
0078 .dbline 166
0078 ; CLR(PORTB,TRXCE);
0078 C198 cbi 0x18,1
007A .dbline -2
007A L8:
007A .dbline 0 ; func end
007A 0895 ret
007C .dbend
007C .dbfunc e nrf905_TxSend _nrf905_TxSend fV
.even
007C _nrf905_TxSend::
007C .dbline -1
007C .dbline 171
007C ; }
007C ;
007C ; //->ShockBurst Send
007C ; void nrf905_TxSend()
007C ; {
007C .dbline 172
007C ; SET(PORTB,TRXCE);
007C C19A sbi 0x18,1
007E .dbline 173
007E ; DelayUs(20);//>10us
007E 04E1 ldi R16,20
0080 10E0 ldi R17,0
0082 0E940000 xcall _DelayUs
0086 .dbline 174
0086 ; CLR(PORTB,TRXCE);//只发送一次
0086 C198 cbi 0x18,1
0088 .dbline -2
0088 L9:
0088 .dbline 0 ; func end
0088 0895 ret
008A .dbend
008A .dbfunc e nrf905_RxOn _nrf905_RxOn fV
.even
008A _nrf905_RxOn::
008A .dbline -1
008A .dbline 179
008A ; }
008A ;
008A ; //->ShockBurst Recv
008A ; void nrf905_RxOn()
008A ; {
008A .dbline 180
008A ; SET(PORTB,PWR);
008A C09A sbi 0x18,0
008C .dbline 181
008C ; CLR(PORTB,TX_EN);//maybe first
008C C298 cbi 0x18,2
008E .dbline 182
008E ; SET(PORTB,TRXCE);
008E C19A sbi 0x18,1
0090 .dbline -2
0090 L10:
0090 .dbline 0 ; func end
0090 0895 ret
0092 .dbend
0092 .dbfunc e nrf905_Init _nrf905_Init fV
.even
0092 _nrf905_Init::
0092 .dbline -1
0092 .dbline 187
0092 ; }
0092 ;
0092 ; //初始化nrf905
0092 ; void nrf905_Init()
0092 ; {
0092 .dbline 188
0092 ; nrf905_StandBy();
0092 EADF xcall _nrf905_StandBy
0094 .dbline 189
0094 ; DelayMs(10);//!!!must >3ms
0094 0AE0 ldi R16,10
0096 0E940000 xcall _DelayMs
009A .dbline 190
009A ; nrf905_Config();
009A B2DF xcall _nrf905_Config
009C .dbline 192
009C ;
009C ; nrf905_SpiTest();//test...
009C 02D0 xcall _nrf905_SpiTest
009E .dbline 193
009E ; nrf905_RxOn();
009E F5DF xcall _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 4A93 st -y,R20
00A4 .dbline -1
00A4 .dbline 198
00A4 ; }
00A4 ;
00A4 ; //测试:通过读配置,判断SPI操作是否正确
00A4 ; void nrf905_SpiTest()
00A4 ; {uchar i;
00A4 .dbline 199
00A4 ; CLR(PORTB,CSN);
00A4 C498 cbi 0x18,4
00A6 .dbline 200
00A6 ; nrf905_SpiRW(RC); //读配置
00A6 00E1 ldi R16,16
00A8 D7DF xcall _nrf905_SpiRW
00AA .dbline 201
00AA ; for (i=0;i<10;i++)
00AA 4427 clr R20
00AC 0AC0 xjmp L16
00AE L13:
00AE .dbline 202
00AE ; {
00AE .dbline 203
00AE ; RxBuf[i]= nrf905_SpiRW(0);//read from nrf905
00AE 0027 clr R16
00B0 D3DF xcall _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 204
00C0 ; }
00C0 L14:
00C0 .dbline 201
00C0 4395 inc R20
00C2 L16:
00C2 .dbline 201
00C2 4A30 cpi R20,10
00C4 A0F3 brlo L13
00C6 X1:
00C6 .dbline 205
00C6 ; SET(PORTB,CSN);
00C6 C49A sbi 0x18,4
00C8 .dbline -2
00C8 L12:
00C8 .dbline 0 ; func end
00C8 4991 ld R20,y+
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 210
00CC ; }
00CC ;
00CC ; //写Tx地址
00CC ; void nrf905_SetTxAddr()
00CC ; {
00CC .dbline 211
00CC ; CLR(PORTB,CSN);
00CC C498 cbi 0x18,4
00CE .dbline 212
00CE ; nrf905_SpiRW(WTA); //写Tx地址
00CE 02E2 ldi R16,34
00D0 C3DF xcall _nrf905_SpiRW
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -