📄 nrf905config.lis
字号:
.module nrf905config.c
.area data(ram, con, rel)
0000 _TxBuf::
0000 .blkb 2
.area idata
0000 6566 .byte 'e,'f
.area data(ram, con, rel)
0002 .blkb 2
.area idata
0002 6768 .byte 'g,'h
.area data(ram, con, rel)
0004 .blkb 2
.area idata
0004 696A .byte 'i,'j
.area data(ram, con, rel)
0006 .blkb 2
.area idata
0006 6B6C .byte 'k,'l
.area data(ram, con, rel)
0008 .blkb 2
.area idata
0008 6D6E .byte 'm,'n
.area data(ram, con, rel)
000A .blkb 2
.area idata
000A 6F70 .byte 'o,'p
.area data(ram, con, rel)
000C .blkb 2
.area idata
000C 7172 .byte 'q,'r
.area data(ram, con, rel)
000E .blkb 2
.area idata
000E 7374 .byte 's,'t
.area data(ram, con, rel)
0010 .blkb 2
.area idata
0010 7576 .byte 'u,'v
.area data(ram, con, rel)
0012 .blkb 2
.area idata
0012 7778 .byte 'w,'x
.area data(ram, con, rel)
0014 .blkb 2
.area idata
0014 797A .byte 'y,'z
.area data(ram, con, rel)
0016 .blkb 2
.area idata
0016 7B7C .byte 123,124
.area data(ram, con, rel)
0018 .blkb 2
.area idata
0018 7D7E .byte 125,126
.area data(ram, con, rel)
001A .blkb 2
.area idata
001A 7F80 .byte 127,128
.area data(ram, con, rel)
001C .blkb 2
.area idata
001C 8182 .byte 129,130
.area data(ram, con, rel)
001E .blkb 2
.area idata
001E 8384 .byte 131,132
.area data(ram, con, rel)
0020 .dbfile F:\programme\RF905\nrf905config.c
0020 .dbsym e TxBuf _TxBuf A[32:32]c
.area text(rom, con, rel)
0000 .dbfile F:\programme\RF905\nrf905config.c
0000 .dbfunc e nrf905_Config _nrf905_Config fV
.even
0000 _nrf905_Config::
0000 00D0 rcall push_gset2
0002 .dbline -1
0002 .dbline 14
0002 ; #include "nrf905.h"
0002 ; #include <iom8v.h>
0002 ; extern void DelayMs(uchar ms);
0002 ; extern void DelayUs(uint us);
0002 ;
0002 ; #define SIZE 32
0002 ;
0002 ; uchar TxBuf[SIZE]={101,102,103,104,105,106,107,108,109,110,
0002 ; 111,112,113,114,115,116,117,118,119,120,
0002 ; 121,122,123,124,125,126,127,128,129,130,
0002 ; 131,132};
0002 ; uchar RxBuf[SIZE];
0002 ; void nrf905_Config(void)
0002 ; {
0002 .dbline 15
0002 ; CLR(PORTB,CSN); // Spi 片选开
0002 C298 cbi 0x18,2
0004 .dbline 16
0004 ; nrf905_SpiRW(WC); // Write config command
0004 0027 clr R16
0006 1127 clr R17
0008 29D0 rcall _nrf905_SpiRW
000A .dbline 17
000A ; nrf905_SpiRW(CH_NO_BYTE); //中心频率低8位
000A 0CE4 ldi R16,76
000C 10E0 ldi R17,0
000E 26D0 rcall _nrf905_SpiRW
0010 .dbline 18
0010 ; nrf905_SpiRW(PA_PWR_10dBm | HFREQ_PLL_433MHz); //发射+10dBm,发射频率433MHz,中心频率第9位=0
0010 0CE0 ldi R16,12
0012 10E0 ldi R17,0
0014 23D0 rcall _nrf905_SpiRW
0016 .dbline 19
0016 ; nrf905_SpiRW(TX_AFW_4BYTE | RX_AFW_4BYTE); //接收地址宽度4字节,发送地址宽度4字节
0016 04E4 ldi R16,68
0018 10E0 ldi R17,0
001A 20D0 rcall _nrf905_SpiRW
001C .dbline 20
001C ; nrf905_SpiRW(RX_PW_32BYTE); //接收数据宽度32字节
001C 00E2 ldi R16,32
001E 10E0 ldi R17,0
0020 1DD0 rcall _nrf905_SpiRW
0022 .dbline 21
0022 ; nrf905_SpiRW(TX_PW_32BYTE); //发送数据宽度32字节
0022 00E2 ldi R16,32
0024 10E0 ldi R17,0
0026 1AD0 rcall _nrf905_SpiRW
0028 .dbline 22
0028 ; nrf905_SpiRW(RX_ADDRESS_0); //接收有效地址第1字节
0028 02E1 ldi R16,18
002A 10E0 ldi R17,0
002C 20E0 ldi R18,0
002E 30E0 ldi R19,0
0030 15D0 rcall _nrf905_SpiRW
0032 .dbline 23
0032 ; nrf905_SpiRW(RX_ADDRESS_1); //接收有效地址第2字节
0032 04E3 ldi R16,52
0034 10E0 ldi R17,0
0036 20E0 ldi R18,0
0038 30E0 ldi R19,0
003A 10D0 rcall _nrf905_SpiRW
003C .dbline 24
003C ; nrf905_SpiRW(RX_ADDRESS_2); //接收有效地址第3字节
003C 06E5 ldi R16,86
003E 10E0 ldi R17,0
0040 20E0 ldi R18,0
0042 30E0 ldi R19,0
0044 0BD0 rcall _nrf905_SpiRW
0046 .dbline 25
0046 ; nrf905_SpiRW(RX_ADDRESS_3); //接收有效地址第4字节
0046 08E7 ldi R16,120
0048 10E0 ldi R17,0
004A 20E0 ldi R18,0
004C 30E0 ldi R19,0
004E 06D0 rcall _nrf905_SpiRW
0050 .dbline 26
0050 ; nrf905_SpiRW(CRC16_EN | XOF_16MHz); //CRC16模式使能,晶体振荡器频率16MHz
0050 08ED ldi R16,216
0052 10E0 ldi R17,0
0054 03D0 rcall _nrf905_SpiRW
0056 .dbline 27
0056 ; SET(PORTB,CSN); // Disable Spi
0056 C29A sbi 0x18,2
0058 .dbline -2
0058 L1:
0058 00D0 rcall pop_gset2
005A .dbline 0 ; func end
005A 0895 ret
005C .dbend
005C .dbfunc e nrf905_SpiRW _nrf905_SpiRW fc
005C ; temp -> R20
005C ; val -> R16
.even
005C _nrf905_SpiRW::
005C 00D0 rcall push_gset1
005E .dbline -1
005E .dbline 31
005E ; }
005E ;
005E ; uchar nrf905_SpiRW(uchar val)
005E ; { uchar temp;
005E .dbline 33
005E ;
005E ; SPDR=val;
005E 0FB9 out 0xf,R16
0060 L3:
0060 .dbline 35
0060 L4:
0060 .dbline 34
0060 ; while ((SPSR&(1<<SPIF))==0)
0060 779B sbis 0xe,7
0062 FECF rjmp L3
0064 .dbline 36
0064 ; ;
0064 ; temp=SPDR;
0064 4FB1 in R20,0xf
0066 .dbline 37
0066 ; return temp;
0066 042F mov R16,R20
0068 .dbline -2
0068 L2:
0068 00D0 rcall pop_gset1
006A .dbline 0 ; func end
006A 0895 ret
006C .dbsym r temp 20 c
006C .dbsym r val 16 c
006C .dbend
006C .dbfunc e nrf905_StandBy _nrf905_StandBy fV
.even
006C _nrf905_StandBy::
006C .dbline -1
006C .dbline 42
006C ; }
006C ;
006C ; //PwrDown->StandBy
006C ; void nrf905_StandBy()
006C ; {
006C .dbline 43
006C ; SET(PORTB,PWRUP);
006C C09A sbi 0x18,0
006E .dbline 44
006E ; CLR(PORTB,TRXCE);
006E C198 cbi 0x18,1
0070 .dbline 45
0070 ; CLR(PORTB,TX_EN);
0070 C698 cbi 0x18,6
0072 .dbline -2
0072 L6:
0072 .dbline 0 ; func end
0072 0895 ret
0074 .dbend
0074 .dbfunc e nrf905_Off _nrf905_Off fV
.even
0074 _nrf905_Off::
0074 .dbline -1
0074 .dbline 50
0074 ; }
0074 ;
0074 ; //->PwrDown
0074 ; void nrf905_Off()
0074 ; {
0074 .dbline 51
0074 ; CLR(PORTB,PWRUP);
0074 C098 cbi 0x18,0
0076 .dbline -2
0076 L7:
0076 .dbline 0 ; func end
0076 0895 ret
0078 .dbend
0078 .dbfunc e nrf905_TxOn _nrf905_TxOn fV
.even
0078 _nrf905_TxOn::
0078 .dbline -1
0078 .dbline 56
0078 ; }
0078 ;
0078 ; //->ShockBurst Send
0078 ; void nrf905_TxOn()
0078 ; {
0078 .dbline 57
0078 ; SET(PORTB,PWRUP);
0078 C09A sbi 0x18,0
007A .dbline 58
007A ; SET(PORTB,TX_EN);
007A C69A sbi 0x18,6
007C .dbline 59
007C ; CLR(PORTB,TRXCE);
007C C198 cbi 0x18,1
007E .dbline -2
007E L8:
007E .dbline 0 ; func end
007E 0895 ret
0080 .dbend
0080 .dbfunc e nrf905_TxSend _nrf905_TxSend fV
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -