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

📄 nrf2401.lis

📁 著名的RF射频芯片nRF2401应用程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00C8           _nrf2401A_TxOn::
 00C8                   .dbline -1
 00C8                   .dbline 220
 00C8           ; }
 00C8           ; 
 00C8           ; //发送模式
 00C8           ; void nrf2401A_TxOn()
 00C8           ; { 
 00C8                   .dbline 221
 00C8           ;    nrf2401A_RwOn();
 00C8 D1DF              rcall _nrf2401A_RwOn
 00CA                   .dbline 222
 00CA           ;    nrf2401A_WR(CH_NO_FREQ); //TxMode,Chan
 00CA 04E0              ldi R16,4
 00CC 99DF              rcall _nrf2401A_WR
 00CE                   .dbline 223
 00CE           ;    nrf2401A_Run();
 00CE D2DF              rcall _nrf2401A_Run
 00D0                   .dbline -2
 00D0           L21:
 00D0                   .dbline 0 ; func end
 00D0 0895              ret
 00D2                   .dbend
 00D2                   .dbfunc e nrf2401A_Init _nrf2401A_Init fV
 00D2           ;              i -> R20
                        .even
 00D2           _nrf2401A_Init::
 00D2 00D0              rcall push_gset1
 00D4                   .dbline -1
 00D4                   .dbline 228
 00D4           ; }
 00D4           ; 
 00D4           ; //初始化nrf2401A
 00D4           ; void nrf2401A_Init()
 00D4           ; {  uchar i;
 00D4                   .dbline 229
 00D4           ;   CLR(PORTC,CLK1);//
 00D4 A998              cbi 0x15,1
 00D6                   .dbline 230
 00D6           ;    nrf2401A_StandBy();
 00D6 C2DF              rcall _nrf2401A_StandBy
 00D8                   .dbline 232
 00D8           ;   // DelayMs(10);       //!!!must >3ms
 00D8           ;    for(i=1;i<5;i++)
 00D8 41E0              ldi R20,1
 00DA 04C0              rjmp L26
 00DC           L23:
 00DC                   .dbline 233
 00DC 08EE              ldi R16,1000
 00DE 13E0              ldi R17,3
 00E0 00D0              rcall _delay
 00E2           L24:
 00E2                   .dbline 232
 00E2 4395              inc R20
 00E4           L26:
 00E4                   .dbline 232
 00E4 4530              cpi R20,5
 00E6 D0F3              brlo L23
 00E8                   .dbline 234
 00E8           ;    delay(1000);
 00E8           ;    nrf2401A_Config();
 00E8 C9DF              rcall _nrf2401A_Config
 00EA                   .dbline 236
 00EA           ;    
 00EA           ;   nrf2401A_RxOn();//接收状态
 00EA E9DF              rcall _nrf2401A_RxOn
 00EC                   .dbline -2
 00EC           L22:
 00EC 00D0              rcall pop_gset1
 00EE                   .dbline 0 ; func end
 00EE 0895              ret
 00F0                   .dbsym r i 20 c
 00F0                   .dbend
 00F0                   .dbfunc e nrf2401A_SetTxAddr _nrf2401A_SetTxAddr fV
                        .even
 00F0           _nrf2401A_SetTxAddr::
 00F0                   .dbline -1
 00F0                   .dbline 242
 00F0           ; }
 00F0           ; 
 00F0           ; 
 00F0           ; //写Tx地址
 00F0           ; void nrf2401A_SetTxAddr()
 00F0           ; {
 00F0                   .dbline 243
 00F0           ;   nrf2401A_WR(TX_ADDRESS_3);
 00F0 0CEC              ldi R16,204
 00F2 86DF              rcall _nrf2401A_WR
 00F4                   .dbline 244
 00F4           ;   nrf2401A_WR(TX_ADDRESS_2);
 00F4 0CEC              ldi R16,204
 00F6 84DF              rcall _nrf2401A_WR
 00F8                   .dbline 245
 00F8           ;   nrf2401A_WR(TX_ADDRESS_1);
 00F8 0CEC              ldi R16,204
 00FA 82DF              rcall _nrf2401A_WR
 00FC                   .dbline 246
 00FC           ;   nrf2401A_WR(TX_ADDRESS_0);
 00FC 0CEC              ldi R16,204
 00FE 80DF              rcall _nrf2401A_WR
 0100                   .dbline -2
 0100           L27:
 0100                   .dbline 0 ; func end
 0100 0895              ret
 0102                   .dbend
 0102                   .dbfunc e nrf2401A_SetData _nrf2401A_SetData fV
 0102           ;              i -> R20
                        .even
 0102           _nrf2401A_SetData::
 0102 00D0              rcall push_gset1
 0104                   .dbline -1
 0104                   .dbline 252
 0104           ;   
 0104           ; }
 0104           ; 
 0104           ; //写Tx数据
 0104           ; void nrf2401A_SetData()
 0104           ; {    uchar i;
 0104                   .dbline 254
 0104           ;   
 0104           ;   for (i=0;i<SIZE;i++)
 0104 4427              clr R20
 0106 09C0              rjmp L32
 0108           L29:
 0108                   .dbline 255
 0108 80E0              ldi R24,<_TxBuf
 010A 90E0              ldi R25,>_TxBuf
 010C E42F              mov R30,R20
 010E FF27              clr R31
 0110 E80F              add R30,R24
 0112 F91F              adc R31,R25
 0114 0081              ldd R16,z+0
 0116 74DF              rcall _nrf2401A_WR
 0118           L30:
 0118                   .dbline 254
 0118 4395              inc R20
 011A           L32:
 011A                   .dbline 254
 011A 4431              cpi R20,20
 011C A8F3              brlo L29
 011E                   .dbline -2
 011E           L28:
 011E 00D0              rcall pop_gset1
 0120                   .dbline 0 ; func end
 0120 0895              ret
 0122                   .dbsym r i 20 c
 0122                   .dbend
 0122                   .dbfunc e nrf2401A_SendData _nrf2401A_SendData fV
                        .even
 0122           _nrf2401A_SendData::
 0122                   .dbline -1
 0122                   .dbline 261
 0122           ;     nrf2401A_WR(TxBuf[i]);
 0122           ;   
 0122           ; }
 0122           ; 
 0122           ; //发送TxBuf中的数据
 0122           ; void nrf2401A_SendData()
 0122           ; {
 0122                   .dbline 262
 0122           ;    nrf2401A_TxOn();
 0122 D2DF              rcall _nrf2401A_TxOn
 0124                   .dbline 263
 0124           ;    SET(PORTD,CE);
 0124 949A              sbi 0x12,4
 0126                   .dbline 264
 0126           ;    nrf2401A_SetTxAddr();//写发送地址
 0126 E4DF              rcall _nrf2401A_SetTxAddr
 0128                   .dbline 265
 0128           ;    nrf2401A_SetData();//写数据
 0128 ECDF              rcall _nrf2401A_SetData
 012A                   .dbline 266
 012A           ;    CLR(PORTD,CE);//启动发送
 012A 9498              cbi 0x12,4
 012C                   .dbline -2
 012C           L33:
 012C                   .dbline 0 ; func end
 012C 0895              ret
 012E                   .dbend
 012E                   .dbfunc e nrf2401A_ReadData _nrf2401A_ReadData fV
 012E           ;              i -> R20
                        .even
 012E           _nrf2401A_ReadData::
 012E 00D0              rcall push_gset1
 0130                   .dbline -1
 0130                   .dbline 274
 0130           ;    //发送完毕后进入StandBy
 0130           ; 
 0130           ; }
 0130           ; 
 0130           ; 
 0130           ; //读出接收到的数据
 0130           ; void nrf2401A_ReadData()
 0130           ; {uchar i;
 0130                   .dbline 275
 0130           ;    for (i=0;i<SIZE;i++)
 0130 4427              clr R20
 0132 09C0              rjmp L38
 0134           L35:
 0134                   .dbline 276
 0134                   .dbline 277
 0134 7FDF              rcall _nrf2401A_RD
 0136 80E0              ldi R24,<_RxBuf
 0138 90E0              ldi R25,>_RxBuf
 013A E42F              mov R30,R20
 013C FF27              clr R31
 013E E80F              add R30,R24
 0140 F91F              adc R31,R25
 0142 0083              std z+0,R16
 0144                   .dbline 278
 0144           L36:
 0144                   .dbline 275
 0144 4395              inc R20
 0146           L38:
 0146                   .dbline 275
 0146 4431              cpi R20,20
 0148 A8F3              brlo L35
 014A                   .dbline -2
 014A           L34:
 014A 00D0              rcall pop_gset1
 014C                   .dbline 0 ; func end
 014C 0895              ret
 014E                   .dbsym r i 20 c
 014E                   .dbend
 014E                   .dbfunc e RfRecvProc _RfRecvProc fV
 014E           ;              i -> <dead>
                        .even
 014E           _RfRecvProc::
 014E                   .dbline -1
 014E                   .dbline 282
 014E           ;      {
 014E           ;          RxBuf[i]=nrf2401A_RD();
 014E           ;        }
 014E           ;   
 014E           ; }
 014E           ; void RfRecvProc()
 014E           ; {uchar i;
 014E                   .dbline 284
 014E           ;   
 014E           ;    if ((PINC&(1<<DR1))==0) return;//DR=1时表示数据接收对而且Crc正确
 014E 9A99              sbic 0x13,2
 0150 01C0              rjmp L40
 0152                   .dbline 284
 0152 01C0              rjmp L39
 0154           L40:
 0154                   .dbline 286
 0154           ;       //已经接收到数据
 0154           ;    nrf2401A_ReadData();//读出...
 0154 ECDF              rcall _nrf2401A_ReadData
 0156                   .dbline -2
 0156           L39:
 0156                   .dbline 0 ; func end
 0156 0895              ret
 0158                   .dbsym l i 1 c
 0158                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile F:\programme\nrf2401\nrf2401.c
 0000           _RxBuf::
 0000                   .blkb 20
 0014                   .dbsym e RxBuf _RxBuf A[20:20]c

⌨️ 快捷键说明

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