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

📄 board.s

📁 chipcom公司CC1100无线模块底层驱动程序
💻 S
📖 第 1 页 / 共 4 页
字号:
	lpm R18,Z
	ldi R16,2
	rcall _CC1100WriteReg
	.dbline 388
;     CC1100WriteReg(CC1100_FIFOTHR,  rfSettings.FIFOTHR);
	ldi R30,<_rfSettings+3
	ldi R31,>_rfSettings+3
	lpm R18,Z
	ldi R16,3
	rcall _CC1100WriteReg
	.dbline 389
;     CC1100WriteReg(CC1100_SYNC1,    rfSettings.SYNC1);
	ldi R30,<_rfSettings+4
	ldi R31,>_rfSettings+4
	lpm R18,Z
	ldi R16,4
	rcall _CC1100WriteReg
	.dbline 390
;     CC1100WriteReg(CC1100_SYNC0,    rfSettings.SYNC0);
	ldi R30,<_rfSettings+5
	ldi R31,>_rfSettings+5
	lpm R18,Z
	ldi R16,5
	rcall _CC1100WriteReg
	.dbline 391
;     CC1100WriteReg(CC1100_PKTLEN,   rfSettings.PKTLEN);
	ldi R30,<_rfSettings+6
	ldi R31,>_rfSettings+6
	lpm R18,Z
	ldi R16,6
	rcall _CC1100WriteReg
	.dbline 392
;     CC1100WriteReg(CC1100_PKTCTRL1, rfSettings.PKTCTRL1);
	ldi R30,<_rfSettings+7
	ldi R31,>_rfSettings+7
	lpm R18,Z
	ldi R16,7
	rcall _CC1100WriteReg
	.dbline 393
;     CC1100WriteReg(CC1100_PKTCTRL0, rfSettings.PKTCTRL0);
	ldi R30,<_rfSettings+8
	ldi R31,>_rfSettings+8
	lpm R18,Z
	ldi R16,8
	rcall _CC1100WriteReg
	.dbline 394
;     CC1100WriteReg(CC1100_ADDR,     rfSettings.ADDR);
	ldi R30,<_rfSettings+9
	ldi R31,>_rfSettings+9
	lpm R18,Z
	ldi R16,9
	rcall _CC1100WriteReg
	.dbline 397
; 	
;     //CC1100WriteReg(CC1100_CHANNR,   rfSettings.CHANNR);
; 	CC1100WriteReg(CC1100_CHANNR,   Chno_Set_Num);
	lds R18,_Chno_Set_Num
	ldi R16,10
	rcall _CC1100WriteReg
	.dbline 399
; 	
;     CC1100WriteReg(CC1100_FSCTRL1,  rfSettings.FSCTRL1);
	ldi R30,<_rfSettings+11
	ldi R31,>_rfSettings+11
	lpm R18,Z
	ldi R16,11
	rcall _CC1100WriteReg
	.dbline 400
;     CC1100WriteReg(CC1100_FSCTRL0,  rfSettings.FSCTRL0);
	ldi R30,<_rfSettings+12
	ldi R31,>_rfSettings+12
	lpm R18,Z
	ldi R16,12
	rcall _CC1100WriteReg
	.dbline 402
; 	
;     CC1100WriteReg(CC1100_FREQ2,    rfSettings.FREQ2);
	ldi R30,<_rfSettings+13
	ldi R31,>_rfSettings+13
	lpm R18,Z
	ldi R16,13
	rcall _CC1100WriteReg
	.dbline 403
;     CC1100WriteReg(CC1100_FREQ1,    rfSettings.FREQ1);
	ldi R30,<_rfSettings+14
	ldi R31,>_rfSettings+14
	lpm R18,Z
	ldi R16,14
	rcall _CC1100WriteReg
	.dbline 404
;     CC1100WriteReg(CC1100_FREQ0,    rfSettings.FREQ0);
	ldi R30,<_rfSettings+15
	ldi R31,>_rfSettings+15
	lpm R18,Z
	ldi R16,15
	rcall _CC1100WriteReg
	.dbline 407
; 	
;     //CC1100WriteReg(CC1100_MDMCFG4,  rfSettings.MDMCFG4);
; 	CC1100WriteReg(CC1100_MDMCFG4,  Sys_Set[Baud_Set_Num].mdcfg4_val);
	lds R2,_Baud_Set_Num
	ldi R24,8
	mul R24,R2
	movw R30,R0
	ldi R24,<_Sys_Set+3
	ldi R25,>_Sys_Set+3
	add R30,R24
	adc R31,R25
	lpm R18,Z
	ldi R16,16
	rcall _CC1100WriteReg
	.dbline 409
;     //CC1100WriteReg(CC1100_MDMCFG3,  rfSettings.MDMCFG3);
; 	CC1100WriteReg(CC1100_MDMCFG3,  Sys_Set[Baud_Set_Num].mdcfg3_val);
	lds R2,_Baud_Set_Num
	ldi R24,8
	mul R24,R2
	movw R30,R0
	ldi R24,<_Sys_Set+4
	ldi R25,>_Sys_Set+4
	add R30,R24
	adc R31,R25
	lpm R18,Z
	ldi R16,17
	rcall _CC1100WriteReg
	.dbline 411
; 	
;     CC1100WriteReg(CC1100_MDMCFG2,  rfSettings.MDMCFG2);
	ldi R30,<_rfSettings+18
	ldi R31,>_rfSettings+18
	lpm R18,Z
	ldi R16,18
	rcall _CC1100WriteReg
	.dbline 412
;     CC1100WriteReg(CC1100_MDMCFG1,  rfSettings.MDMCFG1);
	ldi R30,<_rfSettings+19
	ldi R31,>_rfSettings+19
	lpm R18,Z
	ldi R16,19
	rcall _CC1100WriteReg
	.dbline 413
;     CC1100WriteReg(CC1100_MDMCFG0,  rfSettings.MDMCFG0);
	ldi R30,<_rfSettings+20
	ldi R31,>_rfSettings+20
	lpm R18,Z
	ldi R16,20
	rcall _CC1100WriteReg
	.dbline 416
; 	
;     //CC1100WriteReg(CC1100_DEVIATN,  rfSettings.DEVIATN);
; 	CC1100WriteReg(CC1100_DEVIATN,  Sys_Set[Baud_Set_Num].deviatn);
	lds R2,_Baud_Set_Num
	ldi R24,8
	mul R24,R2
	movw R30,R0
	ldi R24,<_Sys_Set+5
	ldi R25,>_Sys_Set+5
	add R30,R24
	adc R31,R25
	lpm R18,Z
	ldi R16,21
	rcall _CC1100WriteReg
	.dbline 418
; 	
;     CC1100WriteReg(CC1100_MCSM2 ,   rfSettings.MCSM2 );
	ldi R30,<_rfSettings+22
	ldi R31,>_rfSettings+22
	lpm R18,Z
	ldi R16,22
	rcall _CC1100WriteReg
	.dbline 419
; 	CC1100WriteReg(CC1100_MCSM1 ,   rfSettings.MCSM1 );
	ldi R30,<_rfSettings+23
	ldi R31,>_rfSettings+23
	lpm R18,Z
	ldi R16,23
	rcall _CC1100WriteReg
	.dbline 420
; 	CC1100WriteReg(CC1100_MCSM0 ,   rfSettings.MCSM0 );
	ldi R30,<_rfSettings+24
	ldi R31,>_rfSettings+24
	lpm R18,Z
	ldi R16,24
	rcall _CC1100WriteReg
	.dbline 421
;     CC1100WriteReg(CC1100_FOCCFG,   rfSettings.FOCCFG);
	ldi R30,<_rfSettings+25
	ldi R31,>_rfSettings+25
	lpm R18,Z
	ldi R16,25
	rcall _CC1100WriteReg
	.dbline 422
;     CC1100WriteReg(CC1100_BSCFG,    rfSettings.BSCFG);
	ldi R30,<_rfSettings+26
	ldi R31,>_rfSettings+26
	lpm R18,Z
	ldi R16,26
	rcall _CC1100WriteReg
	.dbline 423
;     CC1100WriteReg(CC1100_AGCCTRL2, rfSettings.AGCCTRL2);
	ldi R30,<_rfSettings+27
	ldi R31,>_rfSettings+27
	lpm R18,Z
	ldi R16,27
	rcall _CC1100WriteReg
	.dbline 424
;     CC1100WriteReg(CC1100_AGCCTRL1, rfSettings.AGCCTRL1);
	ldi R30,<_rfSettings+28
	ldi R31,>_rfSettings+28
	lpm R18,Z
	ldi R16,28
	rcall _CC1100WriteReg
	.dbline 425
;     CC1100WriteReg(CC1100_AGCCTRL0, rfSettings.AGCCTRL0);
	ldi R30,<_rfSettings+29
	ldi R31,>_rfSettings+29
	lpm R18,Z
	ldi R16,29
	rcall _CC1100WriteReg
	.dbline 426
; 	CC1100WriteReg(CC1100_WOREVT1,  rfSettings.WOREVT1);
	ldi R30,<_rfSettings+30
	ldi R31,>_rfSettings+30
	lpm R18,Z
	ldi R16,30
	rcall _CC1100WriteReg
	.dbline 427
; 	CC1100WriteReg(CC1100_WOREVT0,  rfSettings.WOREVT0);
	ldi R30,<_rfSettings+31
	ldi R31,>_rfSettings+31
	lpm R18,Z
	ldi R16,31
	rcall _CC1100WriteReg
	.dbline 428
; 	CC1100WriteReg(CC1100_WORCTRL,  rfSettings.WORCTRL);
	ldi R30,<_rfSettings+32
	ldi R31,>_rfSettings+32
	lpm R18,Z
	ldi R16,32
	rcall _CC1100WriteReg
	.dbline 429
;     CC1100WriteReg(CC1100_FREND1,   rfSettings.FREND1);
	ldi R30,<_rfSettings+33
	ldi R31,>_rfSettings+33
	lpm R18,Z
	ldi R16,33
	rcall _CC1100WriteReg
	.dbline 430
;     CC1100WriteReg(CC1100_FREND0,   rfSettings.FREND0);
	ldi R30,<_rfSettings+34
	ldi R31,>_rfSettings+34
	lpm R18,Z
	ldi R16,34
	rcall _CC1100WriteReg
	.dbline 431
;     CC1100WriteReg(CC1100_FSCAL3,   rfSettings.FSCAL3);
	ldi R30,<_rfSettings+35
	ldi R31,>_rfSettings+35
	lpm R18,Z
	ldi R16,35
	rcall _CC1100WriteReg
	.dbline 432
;     CC1100WriteReg(CC1100_FSCAL2,   rfSettings.FSCAL2);
	ldi R30,<_rfSettings+36
	ldi R31,>_rfSettings+36
	lpm R18,Z
	ldi R16,36
	rcall _CC1100WriteReg
	.dbline 433
;     CC1100WriteReg(CC1100_FSCAL1,   rfSettings.FSCAL1);
	ldi R30,<_rfSettings+37
	ldi R31,>_rfSettings+37
	lpm R18,Z
	ldi R16,37
	rcall _CC1100WriteReg
	.dbline 434
;     CC1100WriteReg(CC1100_FSCAL0,   rfSettings.FSCAL0);	
	ldi R30,<_rfSettings+38
	ldi R31,>_rfSettings+38
	lpm R18,Z
	ldi R16,38
	rcall _CC1100WriteReg
	.dbline -2
L37:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e CC1100PinInit _CC1100PinInit fV
	.even
_CC1100PinInit::
	.dbline -1
	.dbline 437
; }
; void CC1100PinInit(void)
; {
	.dbline 438
;     CS_OUT;
	sbi 0x7,3
	.dbline 439
; 	SCLK_OUT;
	sbi 0x7,5
	.dbline 440
; 	SI_OUT;
	sbi 0x7,4
	.dbline 441
; 	SO_IN;
	cbi 0x7,2
	.dbline 443
; 	//GDO0_IN;
; 	GDO2_IN;
	cbi 0xa,2
	.dbline -2
L75:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e CC1100Init _CC1100Init fV
	.even
_CC1100Init::
	sbiw R28,1
	.dbline -1
	.dbline 454
; }
; /*
; ************************************************************
; *Description:初始化CC1100
; *Arguments  :none
; *Returns    :none
; *Notes      :
; ************************************************************
; */
; void CC1100Init (void)
; {
	.dbline 455
; 	CC1100PinInit();
	rcall _CC1100PinInit
	.dbline 456
; 	CC1100Rst();
	rcall _CC1100Rst
	.dbline 457
; 	CC1100WriteRfSettings();
	rcall _CC1100WriteRfSettings
	.dbline 460
;     //CC1100WriteBurstReg(CC1100_IOCFG2, CC1100CfgReg, sizeof(CC1100CfgReg)); //写配置寄存器
;     //CC1100WriteBurstReg(CC1100_IOCFG2, rfSettings, sizeof(rfSettings)); //写配置寄存器
; 	CC1100WriteBurstReg(CC1100_PATABLE, paTable, sizeof(paTable)); //配置发射功率10mW
	ldi R24,8
	std y+0,R24
	ldi R18,<_paTable
	ldi R19,>_paTable
	ldi R16,62
	rcall _CC1100WriteBurstReg
	.dbline 462
; 
; 	PCMSK2 |= BIT(PCINT18);
	lds R24,109
	ori R24,4
	sts 109,R24
	.dbline 463
; 	PCICR  |= BIT(PCIE2);
	lds R24,104
	ori R24,4
	sts 104,R24
	.dbline 465
; 
; 	RF_Sts_ToRX();
	rcall _RF_Sts_ToRX
	.dbline -2
L76:
	adiw R28,1
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e RF_ReceivePacket _RF_ReceivePacket fV
;         status -> R20
	.even
_RF_ReceivePacket::
	rcall push_gset1
	sbiw R28,1
	.dbline -1
	.dbline 477
; }
; 
; /*
; ************************************************************
; *Description:CC1100查看接收数据包
; *Arguments  :none
; *Returns    :none
; *Notes      :
; ************************************************************
; */
; void RF_ReceivePacket (void)
; {
	.dbline 480
;     INT8U status;
; 
;     if (RFState == CC1100_RX_STATE)
	lds R2,_RFState
	tst R2
	brne L78
	.dbline 481
; 	{
	.dbline 482
; 	    RFReceiveLen = CC1100ReadReg(CC1100_RXFIFO);
	ldi R16,63
	rcall _CC1100ReadReg
	sts _RFReceiveLen,R16
	.dbline 483
; 		if (RFReceiveLen <= MAX_RF_BUFF)
	ldi R24,64
	mov R2,R16
	cp R24,R16
	brlo L80
	.dbline 484
; 		{
	.dbline 485
; 		    CC1100ReadBurstReg(CC1100_RXFIFO, RFReceive_Buf, RFReceiveLen);  //保证下标不越界
	std y+0,R2
	ldi R18,<_RFReceive_Buf
	ldi R19,>_RFReceive_Buf
	ldi R16,63
	rcall _CC1100ReadBurstReg
	.dbline 486
; 		}
	rjmp L81
L80:
	.dbline 488
; 		else
; 		{
	.dbline 489
; 			CC1100Init(); 			//保证CC1100出现异常,还能正常工作。为什么会出现异常,原因待查??
	rcall _CC1100Init
	.dbline 490
; 		}
L81:
	.dbline 491
; 		CC1100Strobe(CC1100_SFRX);	//清除接收缓存
	ldi R16,58
	rcall _CC1100Strobe
	.dbline 493
; 
; 		status = CC1100ReadStatus(CC1100_PKTSTATUS);
	ldi R16,56
	rcall _CC1100ReadStatus
	mov R20,R16
	.dbline 494
; 		if (status & CRC_OK)
	sbrs R16,7
	rjmp L79
	.dbline 495
; 		{
	.dbline 496
; 		    RFReceiveFlg = TRUE;  	//射频接收完一包数据,准备发送到串口
	ldi R24,1
	sts _RFReceiveFlg,R24
	.dbline 497
; 			return;
	rjmp L77
X0:
	.dbline 499
; 		}
; 	}
L78:
	.dbline 501
; 	else
; 	{
	.dbline 502
; 	    RFState = CC1100_RX_STATE;	//射频发送完毕,转换为接收状态
	clr R2
	sts _RFState,R2
	.dbline 503
; 	}
L79:
	.dbline 504
; 	RF_Sts_ToRX();
	rcall _RF_Sts_ToRX
	.dbline -2
L77:
	adiw R28,1
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r status 20 c
	.dbend
	.dbfunc e RF_SendPacket _RF_SendPacket fV
;           size -> R22
;       txBuffer -> R20,R21
	.even
_RF_SendPacket::
	rcall push_gset2
	mov R22,R18
	movw R20,R16
	sbiw R28,1
	.dbline -1
	.dbline 517
; }
; 
; 
; /*
; ************************************************************
; *Description:射频数据包发送函数
; *Arguments  :none
; *Returns    :none
; *Notes      :
; ************************************************************
; */
; void RF_SendPacket (INT8U *txBuffer, INT8U size)
; {
	.dbline 518
;     RFState = CC1100_TX_STATE;		//准备发送数据
	ldi R24,255
	sts _RFState,R24
	.dbline 520
; 
; 	RF_Sts_ToTX();
	rcall _RF_Sts_ToTX
	.dbline 522
; 
; 	RFSend_Start=TRUE;
	ldi R24,1
	sts _RFSend_Start,R24
	.dbline 524
; 
; 	CC1100WriteReg(CC1100_TXFIFO, size);
	mov R18,R22
	ldi R16,63
	rcall _CC1100WriteReg
	.dbline 525
; 	CC1100WriteBurstReg(CC1100_TXFIFO, txBuffer, size);
	std y+0,R22
	movw R18,R20
	ldi R16,63
	rcall _CC1100WriteBurstReg
	.dbline 527
; 

⌨️ 快捷键说明

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