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