📄 nrf905.lis
字号:
004E .dbline -1
004E .dbline 171
004E ; }
004E ;
004E ; //->PwrDown
004E ; void nrf905_Off()
004E ; {
004E .dbline 172
004E ; CLR(PORTD,PWR);
004E 9698 cbi 0x12,6
0050 .dbline -2
0050 L7:
0050 .dbline 0 ; func end
0050 0895 ret
0052 .dbend
0052 .dbfunc e nrf905_TxOn _nrf905_TxOn fV
.even
0052 _nrf905_TxOn::
0052 .dbline -1
0052 .dbline 177
0052 ; }
0052 ;
0052 ; //->ShockBurst Send
0052 ; void nrf905_TxOn()
0052 ; {
0052 .dbline 178
0052 ; SET(PORTD,PWR);
0052 969A sbi 0x12,6
0054 .dbline 179
0054 ; SET(PORTD,TX_EN);
0054 949A sbi 0x12,4
0056 .dbline 180
0056 ; CLR(PORTD,TRXCE);
0056 9398 cbi 0x12,3
0058 .dbline -2
0058 L8:
0058 .dbline 0 ; func end
0058 0895 ret
005A .dbend
005A .dbfunc e nrf905_TxSend _nrf905_TxSend fV
.even
005A _nrf905_TxSend::
005A .dbline -1
005A .dbline 185
005A ; }
005A ;
005A ; //->ShockBurst Send
005A ; void nrf905_TxSend()
005A ; {
005A .dbline 186
005A ; SET(PORTD,TRXCE);
005A 939A sbi 0x12,3
005C .dbline 187
005C ; DelayUs(20);//>10us
005C 04E1 ldi R16,20
005E 10E0 ldi R17,0
0060 0E940000 xcall _DelayUs
0064 .dbline 188
0064 ; CLR(PORTD,TRXCE);//只发送一次
0064 9398 cbi 0x12,3
0066 .dbline -2
0066 L9:
0066 .dbline 0 ; func end
0066 0895 ret
0068 .dbend
0068 .dbfunc e nrf905_RxOn _nrf905_RxOn fV
.even
0068 _nrf905_RxOn::
0068 .dbline -1
0068 .dbline 193
0068 ; }
0068 ;
0068 ; //->ShockBurst Recv
0068 ; void nrf905_RxOn()
0068 ; {
0068 .dbline 194
0068 ; SET(PORTD,PWR);
0068 969A sbi 0x12,6
006A .dbline 195
006A ; CLR(PORTD,TX_EN);//maybe first
006A 9498 cbi 0x12,4
006C .dbline 196
006C ; SET(PORTD,TRXCE);
006C 939A sbi 0x12,3
006E .dbline -2
006E L10:
006E .dbline 0 ; func end
006E 0895 ret
0070 .dbend
0070 .dbfunc e nrf905_Init _nrf905_Init fV
.even
0070 _nrf905_Init::
0070 .dbline -1
0070 .dbline 201
0070 ; }
0070 ;
0070 ; //初始化nrf905
0070 ; void nrf905_Init()
0070 ; {
0070 .dbline 202
0070 ; nrf905_StandBy();
0070 EADF xcall _nrf905_StandBy
0072 .dbline 203
0072 ; DelayMs(10);//!!!must >3ms
0072 0AE0 ldi R16,10
0074 0E940000 xcall _DelayMs
0078 .dbline 204
0078 ; nrf905_Config();
0078 C3DF xcall _nrf905_Config
007A .dbline 206
007A ;
007A ; nrf905_SpiTest();//test...
007A 02D0 xcall _nrf905_SpiTest
007C .dbline 207
007C ; nrf905_RxOn();
007C F5DF xcall _nrf905_RxOn
007E .dbline -2
007E L11:
007E .dbline 0 ; func end
007E 0895 ret
0080 .dbend
0080 .dbfunc e nrf905_SpiTest _nrf905_SpiTest fV
0080 ; i -> R10
.even
0080 _nrf905_SpiTest::
0080 0E940000 xcall push_gset3
0084 .dbline -1
0084 .dbline 212
0084 ; }
0084 ;
0084 ; //测试:通过读配置,判断SPI操作是否正确
0084 ; void nrf905_SpiTest()
0084 ; {uchar i;
0084 .dbline 213
0084 ; CLR(PORTB,CSN);
0084 C498 cbi 0x18,4
0086 .dbline 214
0086 ; nrf905_SpiRW(RC); //读配置
0086 00E1 ldi R16,16
0088 D4DF xcall _nrf905_SpiRW
008A .dbline 215
008A ; for (i=0;i<10;i++)
008A AA24 clr R10
008C 0AC0 xjmp L16
008E L13:
008E .dbline 216
008E .dbline 217
008E 0027 clr R16
0090 D0DF xcall _nrf905_SpiRW
0092 80E0 ldi R24,<_RxBuf
0094 90E0 ldi R25,>_RxBuf
0096 EA2D mov R30,R10
0098 FF27 clr R31
009A E80F add R30,R24
009C F91F adc R31,R25
009E 0083 std z+0,R16
00A0 .dbline 218
00A0 L14:
00A0 .dbline 215
00A0 A394 inc R10
00A2 L16:
00A2 .dbline 215
00A2 8A2D mov R24,R10
00A4 8A30 cpi R24,10
00A6 98F3 brlo L13
00A8 .dbline 222
00A8 ; {
00A8 ; RxBuf[i]=nrf905_SpiRW(0);//read from nrf905
00A8 ; }
00A8 ;
00A8 ;
00A8 ; //for (i=0;i<10;i++)
00A8 ; {
00A8 .dbline 223
00A8 ; if(RxBuf[0]==CH_NO_BYTE)CPL(PORTD,LED);
00A8 80910000 lds R24,_RxBuf
00AC 8C34 cpi R24,76
00AE 39F4 brne L17
00B0 .dbline 223
00B0 80E8 ldi R24,128
00B2 90E0 ldi R25,0
00B4 22B2 in R2,0x12
00B6 3324 clr R3
00B8 2826 eor R2,R24
00BA 3926 eor R3,R25
00BC 22BA out 0x12,R2
00BE L17:
00BE .dbline 224
00BE ; if(RxBuf[1]==(PA_PWR_10dBm | HFREQ_PLL_433MHz))CPL(PORTD,LED);
00BE 80910100 lds R24,_RxBuf+1
00C2 8C30 cpi R24,12
00C4 39F4 brne L19
00C6 .dbline 224
00C6 80E8 ldi R24,128
00C8 90E0 ldi R25,0
00CA 22B2 in R2,0x12
00CC 3324 clr R3
00CE 2826 eor R2,R24
00D0 3926 eor R3,R25
00D2 22BA out 0x12,R2
00D4 L19:
00D4 .dbline 225
00D4 ; if(RxBuf[2]==(TX_AFW_4BYTE | RX_AFW_4BYTE))CPL(PORTD,LED);
00D4 80910200 lds R24,_RxBuf+2
00D8 8434 cpi R24,68
00DA 39F4 brne L22
00DC .dbline 225
00DC 80E8 ldi R24,128
00DE 90E0 ldi R25,0
00E0 22B2 in R2,0x12
00E2 3324 clr R3
00E4 2826 eor R2,R24
00E6 3926 eor R3,R25
00E8 22BA out 0x12,R2
00EA L22:
00EA .dbline 226
00EA ; if(RxBuf[3]==RX_PW_1BYTE)CPL(PORTD,LED);
00EA 80910300 lds R24,_RxBuf+3
00EE 8130 cpi R24,1
00F0 39F4 brne L25
00F2 .dbline 226
00F2 80E8 ldi R24,128
00F4 90E0 ldi R25,0
00F6 22B2 in R2,0x12
00F8 3324 clr R3
00FA 2826 eor R2,R24
00FC 3926 eor R3,R25
00FE 22BA out 0x12,R2
0100 L25:
0100 .dbline 227
0100 ; if(RxBuf[4]==TX_PW_1BYTE)CPL(PORTD,LED);
0100 80910400 lds R24,_RxBuf+4
0104 8130 cpi R24,1
0106 39F4 brne L28
0108 .dbline 227
0108 80E8 ldi R24,128
010A 90E0 ldi R25,0
010C 22B2 in R2,0x12
010E 3324 clr R3
0110 2826 eor R2,R24
0112 3926 eor R3,R25
0114 22BA out 0x12,R2
0116 L28:
0116 .dbline 228
0116 ; if(RxBuf[5]==(RX_ADDRESS_0))CPL(PORTD,LED);
0116 42E1 ldi R20,18
0118 50E0 ldi R21,0
011A 60E0 ldi R22,0
011C 70E0 ldi R23,0
011E 20900500 lds R2,_RxBuf+5
0122 3324 clr R3
0124 4424 clr R4
0126 5524 clr R5
0128 2416 cp R2,R20
012A 3506 cpc R3,R21
012C 4606 cpc R4,R22
012E 5706 cpc R5,R23
0130 39F4 brne L31
0132 .dbline 228
0132 80E8 ldi R24,128
0134 90E0 ldi R25,0
0136 22B2 in R2,0x12
0138 3324 clr R3
013A 2826 eor R2,R24
013C 3926 eor R3,R25
013E 22BA out 0x12,R2
0140 L31:
0140 .dbline 229
0140 ; if(RxBuf[6]==RX_ADDRESS_1)CPL(PORTD,LED);
0140 44E3 ldi R20,52
0142 50E0 ldi R21,0
0144 60E0 ldi R22,0
0146 70E0 ldi R23,0
0148 20900600 lds R2,_RxBuf+6
014C 3324 clr R3
014E 4424 clr R4
0150 5524 clr R5
0152 2416 cp R2,R20
0154 3506 cpc R3,R21
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -