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

📄 nrf2401.s

📁 著名的RF射频芯片nRF2401应用程序
💻 S
📖 第 1 页 / 共 2 页
字号:
;    nrf2401A_RwOn();//配置状态
	rcall _nrf2401A_RwOn
	.dbline 158
;    nrf2401A_WR(DATA2_W);           //200+16+32+8
	ldi R16,160
	rcall _nrf2401A_WR
	.dbline 159
;    nrf2401A_WR(DATA1_W);           //200
	ldi R16,160
	rcall _nrf2401A_WR
	.dbline 160
;    nrf2401A_WR(RX_ADDRESS2);
	clr R16
	rcall _nrf2401A_WR
	.dbline 161
;    nrf2401A_WR(RX_ADDRESS2);
	clr R16
	rcall _nrf2401A_WR
	.dbline 162
;    nrf2401A_WR(RX_ADDRESS2);
	clr R16
	rcall _nrf2401A_WR
	.dbline 163
;    nrf2401A_WR(RX_ADDRESS2);
	clr R16
	rcall _nrf2401A_WR
	.dbline 164
;    nrf2401A_WR(RX_ADDRESS2);
	clr R16
	rcall _nrf2401A_WR
	.dbline 165
;    nrf2401A_WR(RX_ADDRESS_4);
	clr R16
	rcall _nrf2401A_WR
	.dbline 166
;    nrf2401A_WR(RX_ADDRESS_3);
	ldi R16,204
	rcall _nrf2401A_WR
	.dbline 167
;    nrf2401A_WR(RX_ADDRESS_2);
	ldi R16,204
	rcall _nrf2401A_WR
	.dbline 168
;    nrf2401A_WR(RX_ADDRESS_1);
	ldi R16,204
	rcall _nrf2401A_WR
	.dbline 169
;    nrf2401A_WR(RX_ADDRESS_0);
	ldi R16,204
	rcall _nrf2401A_WR
	.dbline 170
;    nrf2401A_WR(CRC16_EN|ADDR_W);           //CRC16,AddrWidth
	ldi R16,131
	rcall _nrf2401A_WR
	.dbline 171
;    nrf2401A_WR(PA_PWR_3|XOF_16MHz|CM_SHOCK);
	ldi R16,79
	rcall _nrf2401A_WR
	.dbline 173
;    //nrf2401A_WR(PA_PWR_3|XOF_16MHz|RFDR_1M|CM_SHOCK);
;    nrf2401A_WR(CH_NO_FREQ|RX_EN);               //RxMode,Chan
	ldi R16,5
	rcall _nrf2401A_WR
	.dbline 175
;    //
;    nrf2401A_StandBy();//执行配置
	rcall _nrf2401A_StandBy
	.dbline -2
L19:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e nrf2401A_RxOn _nrf2401A_RxOn fV
	.even
_nrf2401A_RxOn::
	.dbline -1
	.dbline 212
; }
; /*
; //配置nRF2401A
; void nrf2401A_Config(void)
; {
;    nrf2401A_RwOn();//配置状态
; 
;    nrf2401A_WR(DATA2_W);
;    nrf2401A_WR(DATA1_W);
;    nrf2401A_WR(RX_ADDRESS2);
;    nrf2401A_WR(RX_ADDRESS2);
;    nrf2401A_WR(RX_ADDRESS2);
;    nrf2401A_WR(RX_ADDRESS2);
;    nrf2401A_WR(RX_ADDRESS2);
;    nrf2401A_WR(RX_ADDRESS_4);
;    nrf2401A_WR(RX_ADDRESS_3);
;    nrf2401A_WR(RX_ADDRESS_2);
;    nrf2401A_WR(RX_ADDRESS_1);
;    nrf2401A_WR(RX_ADDRESS_0);
;    nrf2401A_WR(CRC16_EN|ADDR_W);//CRC16,AddrWidth
;    nrf2401A_WR(PA_PWR_3|XOF_16MHz|RFDR_1M|CM_SHOCK);
;    //#ifdef BPS_1M         	  
;   //  nrf2401A_WR(PA_PWR_3|XOF_16MHz|RFDR_1M|CM_SHOCK);//0dbm,16M,1Mbps,ShockBurst
;   // #else
;   //  nrf2401A_WR(PA_PWR_3|XOF_16MHz|CM_SHOCK);//0dbm,16M,250Kbps,ShockBurst
;   // #endif
;   // nrf2401A_WR(CH_NO_FREQ|RX_EN); //RxMode,Chan
;    
;    nrf2401A_StandBy();//执行配置
; }
; 
; */
; 
; 
; //接收模式
; void nrf2401A_RxOn()
; {
	.dbline 213
;    nrf2401A_RwOn();
	rcall _nrf2401A_RwOn
	.dbline 214
;    nrf2401A_WR(CH_NO_FREQ|RX_EN);     //RxMode,Chan
	ldi R16,5
	rcall _nrf2401A_WR
	.dbline 215
;    nrf2401A_Run();
	rcall _nrf2401A_Run
	.dbline -2
L20:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e nrf2401A_TxOn _nrf2401A_TxOn fV
	.even
_nrf2401A_TxOn::
	.dbline -1
	.dbline 220
; }
; 
; //发送模式
; void nrf2401A_TxOn()
; { 
	.dbline 221
;    nrf2401A_RwOn();
	rcall _nrf2401A_RwOn
	.dbline 222
;    nrf2401A_WR(CH_NO_FREQ); //TxMode,Chan
	ldi R16,4
	rcall _nrf2401A_WR
	.dbline 223
;    nrf2401A_Run();
	rcall _nrf2401A_Run
	.dbline -2
L21:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e nrf2401A_Init _nrf2401A_Init fV
;              i -> R20
	.even
_nrf2401A_Init::
	rcall push_gset1
	.dbline -1
	.dbline 228
; }
; 
; //初始化nrf2401A
; void nrf2401A_Init()
; {  uchar i;
	.dbline 229
;   CLR(PORTC,CLK1);//
	cbi 0x15,1
	.dbline 230
;    nrf2401A_StandBy();
	rcall _nrf2401A_StandBy
	.dbline 232
;   // DelayMs(10);       //!!!must >3ms
;    for(i=1;i<5;i++)
	ldi R20,1
	rjmp L26
L23:
	.dbline 233
	ldi R16,1000
	ldi R17,3
	rcall _delay
L24:
	.dbline 232
	inc R20
L26:
	.dbline 232
	cpi R20,5
	brlo L23
	.dbline 234
;    delay(1000);
;    nrf2401A_Config();
	rcall _nrf2401A_Config
	.dbline 236
;    
;   nrf2401A_RxOn();//接收状态
	rcall _nrf2401A_RxOn
	.dbline -2
L22:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.dbfunc e nrf2401A_SetTxAddr _nrf2401A_SetTxAddr fV
	.even
_nrf2401A_SetTxAddr::
	.dbline -1
	.dbline 242
; }
; 
; 
; //写Tx地址
; void nrf2401A_SetTxAddr()
; {
	.dbline 243
;   nrf2401A_WR(TX_ADDRESS_3);
	ldi R16,204
	rcall _nrf2401A_WR
	.dbline 244
;   nrf2401A_WR(TX_ADDRESS_2);
	ldi R16,204
	rcall _nrf2401A_WR
	.dbline 245
;   nrf2401A_WR(TX_ADDRESS_1);
	ldi R16,204
	rcall _nrf2401A_WR
	.dbline 246
;   nrf2401A_WR(TX_ADDRESS_0);
	ldi R16,204
	rcall _nrf2401A_WR
	.dbline -2
L27:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e nrf2401A_SetData _nrf2401A_SetData fV
;              i -> R20
	.even
_nrf2401A_SetData::
	rcall push_gset1
	.dbline -1
	.dbline 252
;   
; }
; 
; //写Tx数据
; void nrf2401A_SetData()
; {    uchar i;
	.dbline 254
;   
;   for (i=0;i<SIZE;i++)
	clr R20
	rjmp L32
L29:
	.dbline 255
	ldi R24,<_TxBuf
	ldi R25,>_TxBuf
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	rcall _nrf2401A_WR
L30:
	.dbline 254
	inc R20
L32:
	.dbline 254
	cpi R20,20
	brlo L29
	.dbline -2
L28:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.dbfunc e nrf2401A_SendData _nrf2401A_SendData fV
	.even
_nrf2401A_SendData::
	.dbline -1
	.dbline 261
;     nrf2401A_WR(TxBuf[i]);
;   
; }
; 
; //发送TxBuf中的数据
; void nrf2401A_SendData()
; {
	.dbline 262
;    nrf2401A_TxOn();
	rcall _nrf2401A_TxOn
	.dbline 263
;    SET(PORTD,CE);
	sbi 0x12,4
	.dbline 264
;    nrf2401A_SetTxAddr();//写发送地址
	rcall _nrf2401A_SetTxAddr
	.dbline 265
;    nrf2401A_SetData();//写数据
	rcall _nrf2401A_SetData
	.dbline 266
;    CLR(PORTD,CE);//启动发送
	cbi 0x12,4
	.dbline -2
L33:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e nrf2401A_ReadData _nrf2401A_ReadData fV
;              i -> R20
	.even
_nrf2401A_ReadData::
	rcall push_gset1
	.dbline -1
	.dbline 274
;    //发送完毕后进入StandBy
; 
; }
; 
; 
; //读出接收到的数据
; void nrf2401A_ReadData()
; {uchar i;
	.dbline 275
;    for (i=0;i<SIZE;i++)
	clr R20
	rjmp L38
L35:
	.dbline 276
	.dbline 277
	rcall _nrf2401A_RD
	ldi R24,<_RxBuf
	ldi R25,>_RxBuf
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	std z+0,R16
	.dbline 278
L36:
	.dbline 275
	inc R20
L38:
	.dbline 275
	cpi R20,20
	brlo L35
	.dbline -2
L34:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.dbfunc e RfRecvProc _RfRecvProc fV
;              i -> <dead>
	.even
_RfRecvProc::
	.dbline -1
	.dbline 282
;      {
; 	   RxBuf[i]=nrf2401A_RD();
; 	 }
;   
; }
; void RfRecvProc()
; {uchar i;
	.dbline 284
;   
;    if ((PINC&(1<<DR1))==0) return;//DR=1时表示数据接收对而且Crc正确
	sbic 0x13,2
	rjmp L40
	.dbline 284
	rjmp L39
L40:
	.dbline 286
;       //已经接收到数据
;    nrf2401A_ReadData();//读出...
	rcall _nrf2401A_ReadData
	.dbline -2
L39:
	.dbline 0 ; func end
	ret
	.dbsym l i 1 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile F:\programme\nrf2401\nrf2401.c
_RxBuf::
	.blkb 20
	.dbsym e RxBuf _RxBuf A[20:20]c

⌨️ 快捷键说明

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