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

📄 nrf905config.lis

📁 包含无线收发模块 NREF905的所有功能库函数 本库函数与外部函数接口简单易用
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0116           ;    nrf905_SetTxAddr(); //写发送地址
 0116 DADF              rcall _nrf905_SetTxAddr
 0118                   .dbline 138
 0118           ;    nrf905_SetData();   //写数据
 0118 E6DF              rcall _nrf905_SetData
 011A                   .dbline 139
 011A           ;    nrf905_TxSend();    //启动发送
 011A B2DF              rcall _nrf905_TxSend
 011C                   .dbline 141
 011C           ;   // nrf905_WaitSended();//等待发送结束   有改动
 011C           ;    DelayMs(10);
 011C 0AE0              ldi R16,10
 011E 25D0              rcall _DelayMs
 0120                   .dbline -2
 0120           L27:
 0120                   .dbline 0 ; func end
 0120 0895              ret
 0122                   .dbend
 0122                   .dbfunc e nrf905_SendAgain _nrf905_SendAgain fV
                        .even
 0122           _nrf905_SendAgain::
 0122                   .dbline -1
 0122                   .dbline 147
 0122           ;    
 0122           ; }
 0122           ; 
 0122           ; //测试直接重新发送上次写入的数据
 0122           ; void nrf905_SendAgain()
 0122           ; {
 0122                   .dbline 148
 0122           ;    nrf905_TxOn();
 0122 AADF              rcall _nrf905_TxOn
 0124                   .dbline 149
 0124           ;    nrf905_TxSend();
 0124 ADDF              rcall _nrf905_TxSend
 0126                   .dbline 151
 0126           ;   // nrf905_WaitSended();
 0126           ;    DelayMs(20);
 0126 04E1              ldi R16,20
 0128 20D0              rcall _DelayMs
 012A                   .dbline -2
 012A           L28:
 012A                   .dbline 0 ; func end
 012A 0895              ret
 012C                   .dbend
 012C                   .dbfunc e nrf905_ReadData _nrf905_ReadData fV
 012C           ;              i -> R20
                        .even
 012C           _nrf905_ReadData::
 012C 00D0              rcall push_gset1
 012E                   .dbline -1
 012E                   .dbline 156
 012E           ; }
 012E           ; 
 012E           ; //读出接收到的数据
 012E           ; void nrf905_ReadData()
 012E           ; {
 012E                   .dbline 159
 012E           ;   uchar i;
 012E           ; 
 012E           ;   CLR(PORTB,CSN);                   
 012E C298              cbi 0x18,2
 0130                   .dbline 160
 0130           ;   nrf905_SpiRW(RRP);  //读RxPayload 
 0130 04E2              ldi R16,36
 0132 94DF              rcall _nrf905_SpiRW
 0134                   .dbline 161
 0134           ;   for (i=0;i<SIZE;i++)
 0134 4427              clr R20
 0136 0AC0              rjmp L33
 0138           L30:
 0138                   .dbline 162
 0138                   .dbline 163
 0138 0027              clr R16
 013A 90DF              rcall _nrf905_SpiRW
 013C 80E0              ldi R24,<_RxBuf
 013E 90E0              ldi R25,>_RxBuf
 0140 E42F              mov R30,R20
 0142 FF27              clr R31
 0144 E80F              add R30,R24
 0146 F91F              adc R31,R25
 0148 0083              std z+0,R16
 014A                   .dbline 164
 014A           L31:
 014A                   .dbline 161
 014A 4395              inc R20
 014C           L33:
 014C                   .dbline 161
 014C 4032              cpi R20,32
 014E A0F3              brlo L30
 0150                   .dbline 166
 0150           ;   { 
 0150           ;     RxBuf[i]=nrf905_SpiRW(0);//read...
 0150           ;   }
 0150           ;   
 0150           ;   SET(PORTB,CSN);  
 0150 C29A              sbi 0x18,2
 0152                   .dbline -2
 0152           L29:
 0152 00D0              rcall pop_gset1
 0154                   .dbline 0 ; func end
 0154 0895              ret
 0156                   .dbsym r i 20 c
 0156                   .dbend
 0156                   .dbfunc e RfRecvProc _RfRecvProc fc
 0156           ;              i -> <dead>
                        .even
 0156           _RfRecvProc::
 0156                   .dbline -1
 0156                   .dbline 174
 0156           ; 
 0156           ; }
 0156           ; 
 0156           ; 
 0156           ; 
 0156           ; //接收处理
 0156           ; uchar  RfRecvProc()
 0156           ; {uchar i;
 0156                   .dbline 179
 0156           ;    //if((PINC&(1<<CD))==0)  return 'C';
 0156           ;       
 0156           ;   // if ((PINC&(1<<AM))==0) return 'A';//一般先AM=1指示地址匹配对
 0156           ;    
 0156           ;    if ((PINC&(1<<DR))==0) return 'N';//DR=1时表示数据接收对而且Crc正确
 0156 9A99              sbic 0x13,2
 0158 02C0              rjmp L35
 015A                   .dbline 179
 015A 0EE4              ldi R16,78
 015C 02C0              rjmp L34
 015E           L35:
 015E                   .dbline 182
 015E           ;    
 015E           ;    //已经接收到数据
 015E           ;    nrf905_ReadData();//读出...
 015E E6DF              rcall _nrf905_ReadData
 0160                   .dbline 183
 0160           ;    return 'y';
 0160 09E7              ldi R16,121
 0162                   .dbline -2
 0162           L34:
 0162                   .dbline 0 ; func end
 0162 0895              ret
 0164                   .dbsym l i 1 c
 0164                   .dbend
 0164                   .dbfunc e RfSendProc _RfSendProc fV
 0164           ;              i -> <dead>
                        .even
 0164           _RfSendProc::
 0164                   .dbline -1
 0164                   .dbline 200
 0164           ;   /* for (i=0;i<32;i++)
 0164           ;    { if (RxBuf[i]!=(i+i)) 
 0164           ;         return;
 0164           ;    }*/
 0164           ;    
 0164           ;    //数据接收正确...灯指示
 0164           ;     //    CPL(PORTD,LED);
 0164           ;    
 0164           ;    //从机回送数据包,这样双方都能指示是否收到有效数据包
 0164           ;   /* #ifndef MASTER
 0164           ;      RfSendProc();
 0164           ;    #endif*/
 0164           ; }
 0164           ; 
 0164           ; //发送测试
 0164           ; void RfSendProc()
 0164           ; {uchar i;
 0164                   .dbline 203
 0164           ;   // for (i=0;i<32;i++) 
 0164           ;   // TxBuf[i]=i+i;
 0164           ;    nrf905_SendData();  //发送测试数据
 0164 D7DF              rcall _nrf905_SendData
 0166                   .dbline 204
 0166           ;    nrf905_RxOn();      //重新回到接收状态
 0166 92DF              rcall _nrf905_RxOn
 0168                   .dbline -2
 0168           L37:
 0168                   .dbline 0 ; func end
 0168 0895              ret
 016A                   .dbsym l i 1 c
 016A                   .dbend
 016A                   .dbfunc e DelayMs _DelayMs fV
 016A           ;              i -> R20
 016A           ;             ms -> R22
                        .even
 016A           _DelayMs::
 016A 00D0              rcall push_gset2
 016C 602F              mov R22,R16
 016E                   .dbline -1
 016E                   .dbline 212
 016E           ; }
 016E           ; 
 016E           ; 
 016E           ; 
 016E           ; 
 016E           ; 
 016E           ; void DelayMs(uchar ms)
 016E           ; {char i;
 016E                   .dbline 213
 016E           ; for (i=0;i<ms;i++)
 016E 4427              clr R20
 0170 04C0              rjmp L42
 0172           L39:
 0172                   .dbline 214
 0172                   .dbline 214
 0172 08EE              ldi R16,1000
 0174 13E0              ldi R17,3
 0176 05D0              rcall _DelayUs
 0178                   .dbline 215
 0178           L40:
 0178                   .dbline 213
 0178 4395              inc R20
 017A           L42:
 017A                   .dbline 213
 017A 4617              cp R20,R22
 017C D0F3              brlo L39
 017E                   .dbline 216
 017E           ;   {DelayUs(1000);
 017E           ;   }
 017E           ;   return;
 017E                   .dbline -2
 017E           L38:
 017E 00D0              rcall pop_gset2
 0180                   .dbline 0 ; func end
 0180 0895              ret
 0182                   .dbsym r i 20 c
 0182                   .dbsym r ms 22 c
 0182                   .dbend
 0182                   .dbfunc e DelayUs _DelayUs fV
 0182           ;              i -> R20,R21
 0182           ;             us -> R16,R17
                        .even
 0182           _DelayUs::
 0182 00D0              rcall push_gset1
 0184                   .dbline -1
 0184                   .dbline 220
 0184           ; }
 0184           ; 
 0184           ; void DelayUs(uint us)
 0184           ; {uint i;
 0184                   .dbline 221
 0184           ;   for (i=0;i<us;i++)
 0184 4427              clr R20
 0186 5527              clr R21
 0188 02C0              rjmp L47
 018A           L44:
 018A                   .dbline 222
 018A           L45:
 018A                   .dbline 221
 018A 4F5F              subi R20,255  ; offset = 1
 018C 5F4F              sbci R21,255
 018E           L47:
 018E                   .dbline 221
 018E 4017              cp R20,R16
 0190 5107              cpc R21,R17
 0192 D8F3              brlo L44
 0194                   .dbline -2
 0194           L43:
 0194 00D0              rcall pop_gset1
 0196                   .dbline 0 ; func end
 0196 0895              ret
 0198                   .dbsym r i 20 i
 0198                   .dbsym r us 16 i
 0198                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile F:\programme\RF905\nrf905config.c
 0000           _RxBuf::
 0000                   .blkb 32
 0020                   .dbsym e RxBuf _RxBuf A[32:32]c

⌨️ 快捷键说明

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