📄 jfp_fasong.lis
字号:
0038 .dbline 98
0038 ; return SPDR;
0038 0FB1 in R16,0xf
003A .dbline -2
003A L10:
003A .dbline 0 ; func end
003A 0895 ret
003C .dbsym r cData 16 c
003C .dbend
003C .dbfunc e system_Init _system_Init fV
.even
003C _system_Init::
003C .dbline -1
003C .dbline 102
003C ; }
003C ; //---------------------------------系统状态初始化-------------------------------
003C ; void system_Init(void) //r
003C ; {
003C .dbline 104
003C ;
003C ; Hign_nrf905_CSN; // Spi disable
003C C49A sbi 0x18,4
003E .dbline 105
003E ; Low_nrf905_SCK; // Spi clock line init low
003E C798 cbi 0x18,7
0040 .dbline 106
0040 ; Low_nrf905_DR; // Init DR for input
0040 C298 cbi 0x18,2
0042 .dbline 107
0042 ; Low_nrf905_AM; // Init AM for input
0042 C398 cbi 0x18,3
0044 .dbline 108
0044 ; Low_nrf905_CD; // Init nrf905_CDfor input
0044 9498 cbi 0x12,4
0046 .dbline 109
0046 ; Hign_nrf905_PWR; // nRF905 power on
0046 C19A sbi 0x18,1
0048 .dbline 110
0048 ; Low_nrf905_TRX_CE; // Set nRF905 in standby mode
0048 9598 cbi 0x12,5
004A .dbline 111
004A ; Low_nrf905_TX_EN ; // set radio in Rx mode
004A C098 cbi 0x18,0
004C .dbline -2
004C L14:
004C .dbline 0 ; func end
004C 0895 ret
004E .dbend
004E .dbfunc e Config905 _Config905 fV
004E ; i -> R20
.even
004E _Config905::
004E 0E940000 xcall push_gset1
0052 .dbline -1
0052 .dbline 115
0052 ; }
0052 ; //--------------------------------NRF905寄存器初始化函数------------------------
0052 ; void Config905(void)
0052 ; {
0052 .dbline 117
0052 ; uchar i;
0052 ; Low_nrf905_CSN;
0052 C498 cbi 0x18,4
0054 .dbline 118
0054 ; Delay(1); // Spi enable for write a spi command
0054 01E0 ldi R16,1
0056 10E0 ldi R17,0
0058 D3DF xcall _Delay
005A .dbline 120
005A ; //SpiWrite(WC); // Write config command写放配置命令
005A ; for (i=0;i<11;i++) // Write configration words 写放配置字
005A 4427 clr R20
005C 09C0 xjmp L19
005E L16:
005E .dbline 121
005E .dbline 122
005E 80E0 ldi R24,<_RFConf
0060 90E0 ldi R25,>_RFConf
0062 E42F mov R30,R20
0064 FF27 clr R31
0066 E80F add R30,R24
0068 F91F adc R31,R25
006A 0081 ldd R16,z+0
006C E2DF xcall _SpiReadSpiWrite
006E .dbline 123
006E L17:
006E .dbline 120
006E 4395 inc R20
0070 L19:
0070 .dbline 120
0070 4B30 cpi R20,11
0072 A8F3 brlo L16
0074 .dbline 124
0074 ; {
0074 ; SpiReadSpiWrite(RFConf[i]);
0074 ; }
0074 ; Hign_nrf905_CSN; // Disable Spi
0074 C49A sbi 0x18,4
0076 .dbline -2
0076 L15:
0076 0E940000 xcall pop_gset1
007A .dbline 0 ; func end
007A 0895 ret
007C .dbsym r i 20 c
007C .dbend
007C .dbfunc e TxPacket _TxPacket fV
007C ; i -> R20
007C ; TxBUF -> R22,R23
.even
007C _TxPacket::
007C 0E940000 xcall push_gset2
0080 B801 movw R22,R16
0082 .dbline -1
0082 .dbline 128
0082 ; }
0082 ; //--------------------------------NRF905待发数据打包----------------------------
0082 ; void TxPacket(uchar TxBUF[4])
0082 ; {
0082 .dbline 130
0082 ; uchar i;
0082 ; Low_nrf905_CSN; // 使能Spi,允许对nrf905进行读写操作
0082 C498 cbi 0x18,4
0084 .dbline 131
0084 ; Delay(1);
0084 01E0 ldi R16,1
0086 10E0 ldi R17,0
0088 BBDF xcall _Delay
008A .dbline 132
008A ; SpiReadSpiWrite(WTP); // 写数据前先写写数据命令
008A 00E2 ldi R16,32
008C D2DF xcall _SpiReadSpiWrite
008E .dbline 133
008E ; for (i=0;i<4;i++)
008E 4427 clr R20
0090 07C0 xjmp L24
0092 L21:
0092 .dbline 134
0092 .dbline 135
0092 E42F mov R30,R20
0094 FF27 clr R31
0096 E60F add R30,R22
0098 F71F adc R31,R23
009A 0081 ldd R16,z+0
009C CADF xcall _SpiReadSpiWrite
009E .dbline 136
009E L22:
009E .dbline 133
009E 4395 inc R20
00A0 L24:
00A0 .dbline 133
00A0 4430 cpi R20,4
00A2 B8F3 brlo L21
00A4 .dbline 137
00A4 ; {
00A4 ; SpiReadSpiWrite(TxBUF[i]); // 待发送的32字节数据
00A4 ; }
00A4 ; Hign_nrf905_CSN;
00A4 C49A sbi 0x18,4
00A6 .dbline 138
00A6 ; Delay(1); // 关闭Spi,不允许对nrf905进行读写操作
00A6 01E0 ldi R16,1
00A8 10E0 ldi R17,0
00AA AADF xcall _Delay
00AC .dbline 139
00AC ; Low_nrf905_CSN; // 使能Spi
00AC C498 cbi 0x18,4
00AE .dbline 140
00AE ; SpiReadSpiWrite(WTA); // 写地址前首先先写地址命令
00AE 02E2 ldi R16,34
00B0 C0DF xcall _SpiReadSpiWrite
00B2 .dbline 141
00B2 ; for (i=0;i<4;i++) // 写 4 bytes 地址
00B2 4427 clr R20
00B4 09C0 xjmp L28
00B6 L25:
00B6 .dbline 142
00B6 .dbline 143
00B6 80E0 ldi R24,<_TxAddress
00B8 90E0 ldi R25,>_TxAddress
00BA E42F mov R30,R20
00BC FF27 clr R31
00BE E80F add R30,R24
00C0 F91F adc R31,R25
00C2 0081 ldd R16,z+0
00C4 B6DF xcall _SpiReadSpiWrite
00C6 .dbline 144
00C6 L26:
00C6 .dbline 141
00C6 4395 inc R20
00C8 L28:
00C8 .dbline 141
00C8 4430 cpi R20,4
00CA A8F3 brlo L25
00CC .dbline 145
00CC ; {
00CC ; SpiReadSpiWrite(TxAddress[i]);
00CC ; }
00CC ; Hign_nrf905_CSN; // 关闭Spi
00CC C49A sbi 0x18,4
00CE .dbline 146
00CE ; Hign_nrf905_TRX_CE; // Set TRX_CE high,start Tx data transmission
00CE 959A sbi 0x12,5
00D0 .dbline 147
00D0 ; Delay(1); // 等待DR变高
00D0 01E0 ldi R16,1
00D2 10E0 ldi R17,0
00D4 95DF xcall _Delay
00D6 .dbline 148
00D6 ; Low_nrf905_TRX_CE; // 设置TRX_CE=0
00D6 9598 cbi 0x12,5
00D8 .dbline -2
00D8 L20:
00D8 0E940000 xcall pop_gset2
00DC .dbline 0 ; func end
00DC 0895 ret
00DE .dbsym r i 20 c
00DE .dbsym r TxBUF 22 pc
00DE .dbend
00DE .dbfunc e SetTxMode _SetTxMode fV
.even
00DE _SetTxMode::
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -