⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nrf905.lis

📁 无线nrf905(PTR8000模块)源程序环境:ICCAVR MEGA16L+11.0592M 讯通的PTR8000和PTR8000+模块
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00DE 02E2              ldi R16,34
 00E0 BFDF              xcall _nrf905_SpiRW
 00E2                   .dbline 213
 00E2           ;   nrf905_SpiRW(TX_ADDRESS_0);
 00E2 02E1              ldi R16,18
 00E4 BDDF              xcall _nrf905_SpiRW
 00E6                   .dbline 214
 00E6           ;   nrf905_SpiRW(TX_ADDRESS_1);
 00E6 04E3              ldi R16,52
 00E8 BBDF              xcall _nrf905_SpiRW
 00EA                   .dbline 215
 00EA           ;   nrf905_SpiRW(TX_ADDRESS_2);
 00EA 06E5              ldi R16,86
 00EC B9DF              xcall _nrf905_SpiRW
 00EE                   .dbline 216
 00EE           ;   nrf905_SpiRW(TX_ADDRESS_3);
 00EE 08E7              ldi R16,120
 00F0 B7DF              xcall _nrf905_SpiRW
 00F2                   .dbline 217
 00F2           ;   SET(PORTB,CSN);  
 00F2 C49A              sbi 0x18,4
 00F4                   .dbline -2
 00F4           L17:
 00F4                   .dbline 0 ; func end
 00F4 0895              ret
 00F6                   .dbend
 00F6                   .dbfunc e nrf905_SetData _nrf905_SetData fV
 00F6           ;              i -> R20
                        .even
 00F6           _nrf905_SetData::
 00F6 0E940000          xcall push_gset1
 00FA                   .dbline -1
 00FA                   .dbline 222
 00FA           ; }
 00FA           ; 
 00FA           ; //写Tx数据
 00FA           ; void nrf905_SetData()
 00FA           ; {uchar i;
 00FA                   .dbline 224
 00FA           ; 
 00FA           ;   CLR(PORTB,CSN);                   
 00FA C498              cbi 0x18,4
 00FC                   .dbline 225
 00FC           ;   nrf905_SpiRW(WTP);  //写TxPayload 
 00FC 00E2              ldi R16,32
 00FE B0DF              xcall _nrf905_SpiRW
 0100                   .dbline 226
 0100           ;   for (i=0;i<SIZE;i++)
 0100 4427              clr R20
 0102 09C0              xjmp L22
 0104           L19:
 0104                   .dbline 227
 0104                   .dbline 228
 0104 80E0              ldi R24,<_TxBuf
 0106 90E0              ldi R25,>_TxBuf
 0108 E42F              mov R30,R20
 010A FF27              clr R31
 010C E80F              add R30,R24
 010E F91F              adc R31,R25
 0110 0081              ldd R16,z+0
 0112 A6DF              xcall _nrf905_SpiRW
 0114                   .dbline 229
 0114           L20:
 0114                   .dbline 226
 0114 4395              inc R20
 0116           L22:
 0116                   .dbline 226
 0116 4032              cpi R20,32
 0118 A8F3              brlo L19
 011A                   .dbline 231
 011A           ;   { 
 011A           ;     nrf905_SpiRW(TxBuf[i]);
 011A           ;   }
 011A           ;   
 011A           ;   SET(PORTB,CSN);  
 011A C49A              sbi 0x18,4
 011C                   .dbline -2
 011C           L18:
 011C 0E940000          xcall pop_gset1
 0120                   .dbline 0 ; func end
 0120 0895              ret
 0122                   .dbsym r i 20 c
 0122                   .dbend
 0122                   .dbfunc e nrf905_WaitSended _nrf905_WaitSended fV
                        .even
 0122           _nrf905_WaitSended::
 0122                   .dbline -1
 0122                   .dbline 236
 0122           ; }
 0122           ; 
 0122           ; //等待发送结束
 0122           ; void nrf905_WaitSended()
 0122           ; {
 0122           L24:
 0122                   .dbline 237
 0122           L25:
 0122                   .dbline 237
 0122           ;    while ((PIND&(1<<DR))==0);
 0122 849B              sbis 0x10,4
 0124 FECF              rjmp L24
 0126                   .dbline -2
 0126           L23:
 0126                   .dbline 0 ; func end
 0126 0895              ret
 0128                   .dbend
 0128                   .dbfunc e nrf905_SendData _nrf905_SendData fV
                        .even
 0128           _nrf905_SendData::
 0128                   .dbline -1
 0128                   .dbline 242
 0128           ; }
 0128           ; 
 0128           ; //发送TxBuf中的数据
 0128           ; void nrf905_SendData()
 0128           ; {
 0128                   .dbline 243
 0128           ;    nrf905_TxOn();//切换到发送模式
 0128 ABDF              xcall _nrf905_TxOn
 012A                   .dbline 244
 012A           ;    nrf905_SetTxAddr();//写发送地址
 012A D8DF              xcall _nrf905_SetTxAddr
 012C                   .dbline 245
 012C           ;    nrf905_SetData();//写数据
 012C E4DF              xcall _nrf905_SetData
 012E                   .dbline 246
 012E           ;    nrf905_TxSend();//启动发送
 012E ACDF              xcall _nrf905_TxSend
 0130                   .dbline 247
 0130           ;    nrf905_WaitSended();//等待发送结束
 0130 F8DF              xcall _nrf905_WaitSended
 0132                   .dbline -2
 0132           L27:
 0132                   .dbline 0 ; func end
 0132 0895              ret
 0134                   .dbend
 0134                   .dbfunc e nrf905_SendAgain _nrf905_SendAgain fV
                        .even
 0134           _nrf905_SendAgain::
 0134                   .dbline -1
 0134                   .dbline 253
 0134           ;    
 0134           ; }
 0134           ; 
 0134           ; //测试直接重新发送上次写入的数据
 0134           ; void nrf905_SendAgain()
 0134           ; {
 0134                   .dbline 254
 0134           ;    nrf905_TxOn();
 0134 A5DF              xcall _nrf905_TxOn
 0136                   .dbline 255
 0136           ;    nrf905_TxSend();
 0136 A8DF              xcall _nrf905_TxSend
 0138                   .dbline 256
 0138           ;    nrf905_WaitSended();
 0138 F4DF              xcall _nrf905_WaitSended
 013A                   .dbline -2
 013A           L28:
 013A                   .dbline 0 ; func end
 013A 0895              ret
 013C                   .dbend
 013C                   .dbfunc e nrf905_ReadData _nrf905_ReadData fV
 013C           ;              i -> R20
                        .even
 013C           _nrf905_ReadData::
 013C 0E940000          xcall push_gset1
 0140                   .dbline -1
 0140                   .dbline 262
 0140           ;    
 0140           ; }
 0140           ; 
 0140           ; //读出接收到的数据
 0140           ; void nrf905_ReadData()
 0140           ; {
 0140                   .dbline 265
 0140           ;   uchar i;
 0140           ; 
 0140           ;   CLR(PORTB,CSN);                   
 0140 C498              cbi 0x18,4
 0142                   .dbline 266
 0142           ;   nrf905_SpiRW(RRP);  //读RxPayload 
 0142 04E2              ldi R16,36
 0144 8DDF              xcall _nrf905_SpiRW
 0146                   .dbline 267
 0146           ;   for (i=0;i<SIZE;i++)
 0146 4427              clr R20
 0148 0AC0              xjmp L33
 014A           L30:
 014A                   .dbline 268
 014A                   .dbline 269
 014A 0027              clr R16
 014C 89DF              xcall _nrf905_SpiRW
 014E 80E0              ldi R24,<_RxBuf
 0150 90E0              ldi R25,>_RxBuf
 0152 E42F              mov R30,R20
 0154 FF27              clr R31
 0156 E80F              add R30,R24
 0158 F91F              adc R31,R25
 015A 0083              std z+0,R16
 015C                   .dbline 270
 015C           L31:
 015C                   .dbline 267
 015C 4395              inc R20
 015E           L33:
 015E                   .dbline 267
 015E 4032              cpi R20,32
 0160 A0F3              brlo L30
 0162                   .dbline 272
 0162           ;   { 
 0162           ;     RxBuf[i]=nrf905_SpiRW(0);//read...
 0162           ;   }
 0162           ;   
 0162           ;   SET(PORTB,CSN);  
 0162 C49A              sbi 0x18,4
 0164                   .dbline -2
 0164           L29:
 0164 0E940000          xcall pop_gset1
 0168                   .dbline 0 ; func end
 0168 0895              ret
 016A                   .dbsym r i 20 c
 016A                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\IccAvr\Pei\ptr8000\nrf905.C
 0000           _RxBuf::
 0000                   .blkb 32
 0020                   .dbsym e RxBuf _RxBuf A[32:32]c
 0020           _TxBuf::
 0020                   .blkb 32
 0040                   .dbsym e TxBuf _TxBuf A[32:32]c

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -