📄 board.s
字号:
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 + -