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

📄 nrf905_temperature.s

📁 ADC采集温度数据通过nrf905发送出去
💻 S
📖 第 1 页 / 共 5 页
字号:
; 
; /////////////////////////////////////////////////////////////
; void nrF905_Standby_Mode()
; {
	.dbline 594
; 	PWR_UP_H;
	sbi 0x18,0
	.dbline 595
; 	TRX_CE_L;
	cbi 0x12,6
	.dbline -2
L208:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e nrF905_TX_Mode _nrF905_TX_Mode fV
	.even
_nrF905_TX_Mode::
	.dbline -1
	.dbline 600
; }
; 
; /////////////////////////////////////////////////////////////
; void nrF905_TX_Mode()
; {
	.dbline 601
; 	PWR_UP_H;
	sbi 0x18,0
	.dbline 602
; 	TX_EN_H;
	sbi 0x12,5
	.dbline 603
; 	TRX_CE_L;
	cbi 0x12,6
	.dbline -2
L209:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e nrF905_RX_Mode _nrF905_RX_Mode fV
	.even
_nrF905_RX_Mode::
	.dbline -1
	.dbline 608
; }
; 
; /////////////////////////////////////////////////////////////
; void nrF905_RX_Mode()
; {
	.dbline 609
; 	PWR_UP_H;
	sbi 0x18,0
	.dbline 610
; 	TX_EN_L;
	cbi 0x12,5
	.dbline 611
; 	TRX_CE_H;
	sbi 0x12,6
	.dbline 612
; 	us(650);
	ldi R16,650
	ldi R17,2
	rcall _us
	.dbline -2
L210:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e spi_handle _spi_handle fc
;            len -> R22
;              i -> R20
;            cmd -> R10
	.even
_spi_handle::
	rcall push_xgsetF00C
	mov R10,R16
	.dbline -1
	.dbline 617
; }
; 
; /////////////////////////////////////////////////////////////
; BYTE spi_handle(BYTE cmd)
; {
	.dbline 619
;  	BYTE	len,i;
;  	switch(cmd)		 {
	mov R20,R10
	clr R21
	cpi R20,16
	ldi R30,0
	cpc R21,R30
	breq L215
X39:
	cpi R20,16
	ldi R30,0
	cpc R21,R30
	brge X51
	rjmp L212
X51:
X40:
L244:
	cpi R20,33
	ldi R30,0
	cpc R21,R30
	brne X52
	rjmp L236
X52:
X41:
	cpi R20,35
	ldi R30,0
	cpc R21,R30
	brne X53
	rjmp L228
X53:
X42:
	cpi R20,36
	ldi R30,0
	cpc R21,R30
	breq L222
X43:
	rjmp L212
L215:
	.dbline 621
; 	case R_CONFIG:
; 		len = 10;
	ldi R22,10
	.dbline 622
; 		for ( i=0; i<10; i++ ) {
	clr R20
	rjmp L219
L216:
	.dbline 622
	.dbline 623
; 			if ( Register[i] != spi_rxbuf[i] )	return 1;
	ldi R24,<_spi_rxbuf
	ldi R25,>_spi_rxbuf
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,<_Register
	ldi R25,>_Register
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R3,z+0
	cp R3,R2
	breq L220
X44:
	.dbline 623
	ldi R16,1
	rjmp L211
L220:
	.dbline 624
; 		}
L217:
	.dbline 622
	inc R20
L219:
	.dbline 622
	cpi R20,10
	brlo L216
X45:
	.dbline 625
; 		break;
	rjmp L213
L222:
	.dbline 627
; 	case R_RX_PAYLOAD:
; 		len = Register[3] & 0x3f;
	lds R22,_Register+3
	andi R22,63
	.dbline 628
; 		rxpt = 0;
	clr R2
	sts _rxpt,R2
	.dbline 629
; 		handlept = 0;
	sts _handlept,R2
	.dbline 630
; 		FlashFlag = FLASHLIMIT;
	ldi R24,2
	sts _FlashFlag,R24
	.dbline 631
; 		for ( i=0; i<len; i++ )	 {
	clr R20
	rjmp L227
L224:
	.dbline 631
	.dbline 632
; 			uart_TxChar(spi_rxbuf[i]);
	ldi R24,<_spi_rxbuf
	ldi R25,>_spi_rxbuf
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	rcall _uart_TxChar
	.dbline 633
; 		}
L225:
	.dbline 631
	inc R20
L227:
	.dbline 631
	cp R20,R22
	brlo L224
X46:
	.dbline 635
; 
; 		rxpt = len;
	sts _rxpt,R22
	.dbline 636
; 		handle();
	rcall _handle
	.dbline 637
; 		break;
	rjmp L213
L228:
	.dbline 639
; 	case R_TX_ADDRESS:
; 		len = (Register[2] >> 4) & 0x07;
	lds R22,_Register+2
	swap R22
	andi R22,#0x0F
	andi R22,7
	.dbline 640
; 		for ( i=0; i<len; i++ ) {
	clr R20
	rjmp L233
L230:
	.dbline 640
	.dbline 641
; 			if ( tx_addr[i] != spi_rxbuf[i] )	return 1;
	ldi R24,<_spi_rxbuf
	ldi R25,>_spi_rxbuf
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,<_tx_addr
	ldi R25,>_tx_addr
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R3,z+0
	cp R3,R2
	breq L234
X47:
	.dbline 641
	ldi R16,1
	rjmp L211
L234:
	.dbline 642
; 		}
L231:
	.dbline 640
	inc R20
L233:
	.dbline 640
	cp R20,R22
	brlo L230
X48:
	.dbline 644
; 
; 		break;
	rjmp L213
L236:
	.dbline 646
; 	case R_TX_PAYLOAD:
; 		len = Register[4] & 0x3F;
	lds R22,_Register+4
	andi R22,63
	.dbline 647
; 		for ( i=0; i<len; i++ ) {
	clr R20
	rjmp L241
L238:
	.dbline 647
	.dbline 648
; 			if ( tx_buf[i] != spi_rxbuf[i] )	return 1;
	ldi R24,<_spi_rxbuf
	ldi R25,>_spi_rxbuf
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,<_tx_buf
	ldi R25,>_tx_buf
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R3,z+0
	cp R3,R2
	breq L242
X49:
	.dbline 648
	ldi R16,1
	rjmp L211
L242:
	.dbline 649
; 		}
L239:
	.dbline 647
	inc R20
L241:
	.dbline 647
	cp R20,R22
	brlo L238
X50:
	.dbline 651
; 
; 		break;
L212:
L213:
	.dbline 654
; 	}
; 
; 	nrF905_RX_Mode();
	rcall _nrF905_RX_Mode
	.dbline 655
; 	return 0;
	clr R16
	.dbline -2
L211:
	.dbline 0 ; func end
	rjmp pop_xgsetF00C
	.dbsym r len 22 c
	.dbsym r i 20 c
	.dbsym r cmd 10 c
	.dbend
	.dbfunc e SPI_R_CONFIG _SPI_R_CONFIG fc
;              i -> R20
	.even
_SPI_R_CONFIG::
	st -y,R20
	.dbline -1
	.dbline 660
; }
; 
; /////////////////////////////////////////////////////////////
; BYTE SPI_R_CONFIG()
; {
	.dbline 663
;  	BYTE	i;
; 
; 	spi_rxpt = 0;
	clr R2
	sts _spi_rxpt,R2
	.dbline 664
; 	spi_handlept = 0;
	sts _spi_handlept,R2
	.dbline 665
; 	nrF905_Standby_Mode();
	rcall _nrF905_Standby_Mode
	.dbline 666
; 	CSN_L;
	cbi 0x18,2
	.dbline 667
;  	SPI_Char(0,R_CONFIG);
	ldi R18,16
	clr R16
	rcall _SPI_Char
	.dbline 668
; 	for ( i=0; i<10; i++ ) 	SPI_Char(1,0xff);
	clr R20
	rjmp L249
L246:
	.dbline 668
	ldi R18,255
	ldi R16,1
	rcall _SPI_Char
L247:
	.dbline 668
	inc R20
L249:
	.dbline 668
	cpi R20,10
	brlo L246
X54:
	.dbline 670
; 
; 	CSN_H;
	sbi 0x18,2
	.dbline 671
; 	return spi_handle(R_CONFIG);
	ldi R16,16
	rcall _spi_handle
	.dbline -2
L245:
	.dbline 0 ; func end
	ld R20,y+
	ret
	.dbsym r i 20 c
	.dbend
	.dbfunc e SPI_W_CONFIG _SPI_W_CONFIG fV
;              i -> R20
	.even
_SPI_W_CONFIG::
	st -y,R20
	.dbline -1
	.dbline 676
; }
; 
; /////////////////////////////////////////////////////////////
; void SPI_W_CONFIG()
; {
	.dbline 679
;  	BYTE	i;
; 
; 	nrF905_Standby_Mode();
	rcall _nrF905_Standby_Mode
	.dbline 680
; 	ms(10);
	ldi R16,10
	ldi R17,0
	rcall _ms
	rjmp L252
L251:
	.dbline 681
; 	while(1)	{
	.dbline 682
; 		CSN_L;
	cbi 0x18,2
	.dbline 683
; 	 	SPI_Char(0,W_CONFIG);
	clr R18
	clr R16
	rcall _SPI_Char
	.dbline 684
; 		for ( i=0; i<10; i++ )	{
	clr R20
	rjmp L257
L254:
	.dbline 684
	.dbline 685
; 		 	SPI_Char(0,Register[i]);
	ldi R24,<_Register
	ldi R25,>_Register
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R18,z+0
	clr R16
	rcall _SPI_Char
	.dbline 686
; 		}
L255:
	.dbline 684
	inc R20
L257:
	.dbline 684
	cpi R20,10
	brlo L254
X55:
	.dbline 688
; 
; 		CSN_H;
	sbi 0x18,2
	.dbline 690
; 
; 		if ( !SPI_R_CONFIG() )	break;
	rcall _SPI_R_CONFIG
	tst R16
	brne L258
X56:
	.dbline 690
	rjmp L253
L258:
	.dbline 691
; 	}
L252:
	.dbline 681
	rjmp L251
L253:
	.dbline 693
; 
; 	nrF905_RX_Mode();
	rcall _nrF905_RX_Mode
	.dbline -2
L250:
	.dbline 0 ; func end
	ld R20,y+
	ret
	.dbsym r i 20 c
	.dbend
	.dbfunc e SPI_R_TX_PAYLOAD _SPI_R_TX_PAYLOAD fc
;            len -> R20
;              i -> R10
	.even
_SPI_R_TX_PAYLOAD::
	st -y,R10
	st -y,R20
	.dbline -1
	.dbline 698
; }
; 
; /////////////////////////////////////////////////////////////
; BYTE SPI_R_TX_PAYLOAD()
; {
	.dbline 701
;  	BYTE	i,len;
; 
; 	spi_rxpt = 0;
	clr R2
	sts _spi_rxpt,R2
	.dbline 702
; 	spi_handlept = 0;
	sts _spi_handlept,R2
	.dbline 703
; 	nrF905_Standby_Mode();
	rcall _nrF905_Standby_Mode
	.dbline 704
; 	CSN_L;
	cbi 0x18,2
	.dbline 705
;  	SPI_Char(0,R_TX_PAYLOAD);
	ldi R18,33
	clr R16
	rcall _SPI_Char
	.dbline 706
; 	len = Register[4] & 0x3F;
	lds R20,_Register+4
	andi R20,63
	.dbline 707
; 	for ( i=0; i<len; i++ ) 	SPI_Char(1,0xff);
	clr R10
	rjmp L265
L262:
	.dbline 707
	ldi R18,255
	ldi R16,1
	rcall _SPI_Char
L263:
	.dbline 707
	inc R10
L265:
	.dbline 707
	cp R10,R20
	brlo L262
X57:
	.dbline 709
; 
; 	CSN_H;
	sbi 0x18,2
	.dbline 710
; 	return spi_handle(R_TX_PAYLOAD);
	ldi R16,33
	rcall _spi_handle
	.dbline -2
L260:
	.dbline 0 ; func end
	ld R20,y+
	ld R10,y+
	ret
	.dbsym r len 20 c
	.dbsym r i 10 c
	.dbend
	.dbfunc e SPI_W_TX_PAYLOAD _SPI_W_TX_PAYLOAD fV
;            len -> <dead>
;              i -> R10
	.even
_SPI_W_TX_PAYLOAD::
	st -y,R10
	.dbline -1
	.dbline 715
; }
; 
; /////////////////////////////////////////////////////////////
; void SPI_W_TX_PAYLOAD()
; {
	.dbline 718
;  	BYTE	i,len;
; 
; 	CSN_L;
	cbi 0x18,2
	.dbline 719
; 	SPI_Char(0,W_TX_PAYLOAD);
	ldi R18,32
	clr R16
	rcall _SPI_Char
	.dbline 723
; 
; //	len = Register[4] & 0x3F;
; 
;     Register[4] = tx_len;
	lds R2,_tx_len
	sts _Register+4,R2
	.dbline 724
; 	for ( i=0; i<tx_len; i++ )	{
	clr R10
	rjmp L271
L268:
	.dbline 724
	.dbline 725
; 		SPI_Char(0,tx_buf[i]);
	ldi R24,<_tx_buf
	ldi R25,>_tx_buf
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	ldd R18,z+0
	clr R16
	rcall _SPI_Char
	.dbline 726
; 		uart_TxChar(tx_buf[i]);
	ldi R24,<_tx_buf
	ldi R25,>_tx_buf
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	rcall _uart_TxChar
	.dbline 727
; 	}
L269:
	.dbline 724
	inc R10
L271:
	.dbline 724
	lds R2,_tx_len
	cp R10,R2
	brlo L268
X58:
	.dbline 728
; 	CSN_H;
	sbi 0x18,2
	.dbline -2
L266:
	.dbline 0 ; func end
	ld R10,y+
	ret
	.dbsym l len 1 c
	.dbsym r i 10 c
	.dbend
	.dbfunc e SPI_R_TX_ADDRESS _SPI_R_TX_ADDRESS fc
;            len -> R20
;              i -> R10
	.even
_SPI_R_TX_ADDRESS::
	st -y,R10
	st -y,R20
	.dbline -1
	.dbline 733
; }
; 
; /////////////////////////////////////////////////////////////
; BYTE SPI_R_TX_ADDRESS()
; {
	.dbline 736
;  	BYTE	i,len;
; 
; 	spi_rxpt = 0;
	clr R2
	sts _spi_rxpt,R2
	.dbline 737
; 	spi_handlept = 0;
	sts _spi_handlept,R2
	.dbline 738
; 	nrF905_Standby_Mode();
	rcall _nrF905_Standby_Mode
	.dbline 739
; 	CSN_L;
	cbi 0x18,2
	.dbline 740
;  	SPI_Char(0,R_TX_ADDRESS);
	ldi R18,35
	clr R16
	rcall _SPI_Char
	.dbline 741
; 	len = (Register[2] >> 4) & 0x07;
	lds R20,_Register+2
	swap R20
	andi R20,#0x0F
	andi R20,7
	.dbline 742
; 	for ( i=0; i<len; i++ ) 	SPI_Char(1,0xff);
	clr R10
	rjmp L277
L274:
	.dbline 742
	ldi R18,255
	ldi R16,1
	rcall _SPI_Char
L275:
	.dbline 742
	inc R10
L277:
	.dbline 742
	cp R10,R20
	brlo L274
X59:
	.dbline 744
; 
; 	CSN_H;
	sbi 0x18,2
	.dbline 745
; 	return spi_handle(R_TX_ADDRESS);
	ldi R16,35
	rcall _spi_handle
	.dbline -2
L272:
	.dbline 0 ; func end
	ld R20,y+
	ld R10,y+
	ret
	.dbsym r len 20 c
	.dbsym r i 10 c
	.dbend
	.dbfunc e SPI_W_TX_ADDRESS _SPI_W_TX_ADDRESS fV
;            len -> R20
;              i -> R10
	.even
_SPI_W_TX_ADDRESS::
	st -y,R10
	st -y,R20
	.dbline -1
	.dbline 750
; }
; 
; /////////////////////////////////////////////////////////////
; void SPI_W_TX_ADDRESS()
; {
	.dbline 753
;  	BYTE	i,len;
; 
; 	CSN_L;
	cbi 0x18,2
	.dbline 754
;  	SPI_Char(0,W_TX_ADDRESS);
	ldi R18,34
	clr R16
	rcall _SPI_Char
	.dbline 755
; 	len = (Register[2] >> 4) & 0x07;
	lds R20,_Register+2
	swap R20
	andi R20,#0x0F
	andi R20,7
	.dbline 756
; 	for ( i=0; i<len; i++ )	{
	clr R10
	rjmp L283
L280:
	.dbline 756
	.dbline 757
; 		SPI_Char(0,tx_addr[i]);
	ldi R24,<_tx_addr
	ldi R25,>_tx_addr
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	ldd R18,z+0
	clr R16
	rcall _SPI_Char
	.dbline 758
; 	}

⌨️ 快捷键说明

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