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

📄 receive.lst

📁 cc1100的通信程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
_halSpiWriteBurstReg:
  temp                 --> R20
  i                    --> R22
  count                --> R10
  buffer               --> R12
  addr                 --> R20
    00C8 D1A7      RCALL	push_gset4
    00C9 0169      MOVW	R12,R18
    00CA 2F40      MOV	R20,R16
    00CB 84A8      LDD	R10,Y+8
(0254) }
(0255) 
(0256) //*****************************************************************************************
(0257) //函数名:void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count)
(0258) //输入:地址,写入缓冲区,写入个数
(0259) //输出:无
(0260) //功能描述:SPI连续写配置寄存器
(0261) //*****************************************************************************************
(0262) void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count) 
(0263) {
(0264)     INT8U i, temp;
(0265) 	temp = addr | WRITE_BURST;
    00CC 6440      ORI	R20,0x40
(0266)     CSN_0;
    00CD 98C2      CBI	0x18,2
(0267)     while (GDO0);
    00CE 9982      SBIC	0x10,2
    00CF CFFE      RJMP	0x00CE
(0268)     SpiTxRxByte(temp);
    00D0 2F04      MOV	R16,R20
    00D1 DFB7      RCALL	_SpiTxRxByte
(0269)     for (i = 0; i < count; i++)
    00D2 2766      CLR	R22
    00D3 C007      RJMP	0x00DB
(0270)  	{
(0271)         SpiTxRxByte(buffer[i]);
    00D4 2FE6      MOV	R30,R22
    00D5 27FF      CLR	R31
    00D6 0DEC      ADD	R30,R12
    00D7 1DFD      ADC	R31,R13
    00D8 8100      LDD	R16,Z+0
    00D9 DFAF      RCALL	_SpiTxRxByte
    00DA 9563      INC	R22
    00DB 156A      CP	R22,R10
    00DC F3B8      BCS	0x00D4
(0272)     }
(0273)     CSN_1;
    00DD 9AC2      SBI	0x18,2
    00DE D18D      RCALL	pop_gset4
    00DF 9508      RET
_halSpiStrobe:
  strobe               --> R20
    00E0 D195      RCALL	push_gset1
    00E1 2F40      MOV	R20,R16
(0274) }
(0275) 
(0276) //*****************************************************************************************
(0277) //函数名:void halSpiStrobe(INT8U strobe)
(0278) //输入:命令
(0279) //输出:无
(0280) //功能描述:SPI写命令
(0281) //*****************************************************************************************
(0282) void halSpiStrobe(INT8U strobe) 
(0283) {
(0284)     CSN_0;
    00E2 98C2      CBI	0x18,2
(0285)     while (GDO0);
    00E3 9982      SBIC	0x10,2
    00E4 CFFE      RJMP	0x00E3
(0286)     SpiTxRxByte(strobe);		//写入命令
    00E5 2F04      MOV	R16,R20
    00E6 DFA2      RCALL	_SpiTxRxByte
(0287)     CSN_1;
    00E7 9AC2      SBI	0x18,2
    00E8 D190      RCALL	pop_gset1
    00E9 9508      RET
_halSpiReadReg:
  value                --> R20
  temp                 --> R22
  addr                 --> R20
    00EA D189      RCALL	push_gset2
    00EB 2F40      MOV	R20,R16
(0288) }
(0289) 
(0290) 
(0291) 
(0292) 
(0293) 
(0294) //*****************************************************************************************
(0295) //函数名:INT8U halSpiReadReg(INT8U addr)
(0296) //输入:地址
(0297) //输出:该寄存器的配置字
(0298) //功能描述:SPI读寄存器
(0299) //*****************************************************************************************
(0300) INT8U halSpiReadReg(INT8U addr) 
(0301) {
(0302) 	INT8U temp, value;
(0303)        temp = addr|READ_SINGLE;//读寄存器命令
    00EC 2F64      MOV	R22,R20
    00ED 6860      ORI	R22,0x80
(0304) 	CSN_0;
    00EE 98C2      CBI	0x18,2
(0305) 	while (GDO0);
    00EF 9982      SBIC	0x10,2
    00F0 CFFE      RJMP	0x00EF
(0306) 	SpiTxRxByte(temp);
    00F1 2F06      MOV	R16,R22
    00F2 DF96      RCALL	_SpiTxRxByte
(0307) 	value = SpiTxRxByte(0);
    00F3 2700      CLR	R16
    00F4 DF94      RCALL	_SpiTxRxByte
    00F5 2F40      MOV	R20,R16
(0308) 	CSN_1;
    00F6 9AC2      SBI	0x18,2
(0309) 	return value;
    00F7 D172      RCALL	pop_gset2
    00F8 9508      RET
_halSpiReadBurstReg:
  temp                 --> R20
  i                    --> R22
  count                --> R10
  buffer               --> R12
  addr                 --> R20
    00F9 D176      RCALL	push_gset4
    00FA 0169      MOVW	R12,R18
    00FB 2F40      MOV	R20,R16
    00FC 84A8      LDD	R10,Y+8
(0310) }
(0311) 
(0312) 
(0313) //*****************************************************************************************
(0314) //函数名:void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count)
(0315) //输入:地址,读出数据后暂存的缓冲区,读出配置个数
(0316) //输出:无
(0317) //功能描述:SPI连续写配置寄存器
(0318) //*****************************************************************************************
(0319) void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count) 
(0320) {
(0321)     INT8U i,temp;
(0322) 	temp = addr | READ_BURST;		//写入要读的配置寄存器地址和读命令
    00FD 6C40      ORI	R20,0xC0
(0323)     CSN_0;
    00FE 98C2      CBI	0x18,2
(0324)     while (GDO0);
    00FF 9982      SBIC	0x10,2
    0100 CFFE      RJMP	0x00FF
(0325) 	SpiTxRxByte(temp);   
    0101 2F04      MOV	R16,R20
    0102 DF86      RCALL	_SpiTxRxByte
(0326)     for (i = 0; i < count; i++) 
    0103 2766      CLR	R22
    0104 C008      RJMP	0x010D
(0327) 	{
(0328)         buffer[i] = SpiTxRxByte(0);
    0105 2700      CLR	R16
    0106 DF82      RCALL	_SpiTxRxByte
    0107 2FE6      MOV	R30,R22
    0108 27FF      CLR	R31
    0109 0DEC      ADD	R30,R12
    010A 1DFD      ADC	R31,R13
    010B 8300      STD	Z+0,R16
    010C 9563      INC	R22
    010D 156A      CP	R22,R10
    010E F3B0      BCS	0x0105
(0329)     }
(0330)     CSN_1;
    010F 9AC2      SBI	0x18,2
    0110 D15B      RCALL	pop_gset4
    0111 9508      RET
_halSpiReadStatus:
  temp                 --> R20
  value                --> R22
  addr                 --> R20
    0112 D161      RCALL	push_gset2
    0113 2F40      MOV	R20,R16
(0331) }
(0332) 
(0333) 
(0334) //*****************************************************************************************
(0335) //函数名:INT8U halSpiReadReg(INT8U addr)
(0336) //输入:地址
(0337) //输出:该状态寄存器当前值
(0338) //功能描述:SPI读状态寄存器
(0339) //*****************************************************************************************
(0340) INT8U halSpiReadStatus(INT8U addr) 
(0341) {
(0342)     INT8U value,temp;
(0343) 	temp = addr | READ_BURST;		//写入要读的状态寄存器的地址同时写入读命令
    0114 6C40      ORI	R20,0xC0
(0344)     CSN_0;
    0115 98C2      CBI	0x18,2
(0345)     while (GDO0);
    0116 9982      SBIC	0x10,2
    0117 CFFE      RJMP	0x0116
(0346)     SpiTxRxByte(temp);
    0118 2F04      MOV	R16,R20
    0119 DF6F      RCALL	_SpiTxRxByte
(0347) 	value = SpiTxRxByte(0);
    011A 2700      CLR	R16
    011B DF6D      RCALL	_SpiTxRxByte
    011C 2F60      MOV	R22,R16
(0348) 	CSN_1;
    011D 9AC2      SBI	0x18,2
(0349) 	return value;
    011E D14B      RCALL	pop_gset2
    011F 9508      RET
(0350) }
(0351) 
(0352) 
(0353) //*****************************************************************************************
(0354) //函数名:void halRfWriteRfSettings(RF_SETTINGS *pRfSettings)
(0355) //输入:无
(0356) //输出:无
(0357) //功能描述:配置CC1100的寄存器
(0358) //*****************************************************************************************
(0359) void halRfWriteRfSettings(void) 
(0360) {
(0361)     //halSpiWriteReg(CCxxx0_FIFOTHR,0x09);
(0362)     //halSpiWriteReg(CCxxx0_MCSM1,0x00);     //CCA,没有作通
(0363)     halSpiWriteReg(CCxxx0_FSCTRL0,  rfSettings.FSCTRL2);//自已加的
_halRfWriteRfSettings:
    0120 E2E6      LDI	R30,0x26
    0121 E0F0      LDI	R31,0
    0122 9124      LPM	R18,0(Z)
    0123 E00C      LDI	R16,0xC
    0124 DF96      RCALL	_halSpiWriteReg
(0364)     // Write register settings
(0365)     halSpiWriteReg(CCxxx0_FSCTRL1,  rfSettings.FSCTRL1);
    0125 E2E7      LDI	R30,0x27
    0126 E0F0      LDI	R31,0
    0127 9124      LPM	R18,0(Z)
    0128 E00B      LDI	R16,0xB
    0129 DF91      RCALL	_halSpiWriteReg
(0366)     halSpiWriteReg(CCxxx0_FSCTRL0,  rfSettings.FSCTRL0);
    012A E2E8      LDI	R30,0x28
    012B E0F0      LDI	R31,0
    012C 9124      LPM	R18,0(Z)
    012D E00C      LDI	R16,0xC
    012E DF8C      RCALL	_halSpiWriteReg
(0367)     halSpiWriteReg(CCxxx0_FREQ2,    rfSettings.FREQ2);
    012F E2E9      LDI	R30,0x29
    0130 E0F0      LDI	R31,0
    0131 9124      LPM	R18,0(Z)
    0132 E00D      LDI	R16,0xD
    0133 DF87      RCALL	_halSpiWriteReg
(0368)     halSpiWriteReg(CCxxx0_FREQ1,    rfSettings.FREQ1);
    0134 E2EA      LDI	R30,0x2A
    0135 E0F0      LDI	R31,0
    0136 9124      LPM	R18,0(Z)
    0137 E00E      LDI	R16,0xE
    0138 DF82      RCALL	_halSpiWriteReg
(0369)     halSpiWriteReg(CCxxx0_FREQ0,    rfSettings.FREQ0);
    0139 E2EB      LDI	R30,0x2B
    013A E0F0      LDI	R31,0
    013B 9124      LPM	R18,0(Z)
    013C E00F      LDI	R16,0xF
    013D DF7D      RCALL	_halSpiWriteReg
(0370)     halSpiWriteReg(CCxxx0_MDMCFG4,  rfSettings.MDMCFG4);
    013E E2EC      LDI	R30,0x2C
    013F E0F0      LDI	R31,0
    0140 9124      LPM	R18,0(Z)
    0141 E100      LDI	R16,0x10
    0142 DF78      RCALL	_halSpiWriteReg
(0371)     halSpiWriteReg(CCxxx0_MDMCFG3,  rfSettings.MDMCFG3);
    0143 E2ED      LDI	R30,0x2D
    0144 E0F0      LDI	R31,0
    0145 9124      LPM	R18,0(Z)
    0146 E101      LDI	R16,0x11
    0147 DF73      RCALL	_halSpiWriteReg
(0372)     halSpiWriteReg(CCxxx0_MDMCFG2,  rfSettings.MDMCFG2);
    0148 E2EE      LDI	R30,0x2E
    0149 E0F0      LDI	R31,0
    014A 9124      LPM	R18,0(Z)
    014B E102      LDI	R16,0x12
    014C DF6E      RCALL	_halSpiWriteReg
(0373)     halSpiWriteReg(CCxxx0_MDMCFG1,  rfSettings.MDMCFG1);
    014D E2EF      LDI	R30,0x2F
    014E E0F0      LDI	R31,0
    014F 9124      LPM	R18,0(Z)
    0150 E103      LDI	R16,0x13
    0151 DF69      RCALL	_halSpiWriteReg
(0374)     halSpiWriteReg(CCxxx0_MDMCFG0,  rfSettings.MDMCFG0);
    0152 E3E0      LDI	R30,0x30
    0153 E0F0      LDI	R31,0
    0154 9124      LPM	R18,0(Z)
    0155 E104      LDI	R16,0x14
    0156 DF64      RCALL	_halSpiWriteReg
(0375)     halSpiWriteReg(CCxxx0_CHANNR,   rfSettings.CHANNR);
    0157 E3E1      LDI	R30,0x31
    0158 E0F0      LDI	R31,0
    0159 9124      LPM	R18,0(Z)
    015A E00A      LDI	R16,0xA
    015B DF5F      RCALL	_halSpiWriteReg
(0376)     halSpiWriteReg(CCxxx0_DEVIATN,  rfSettings.DEVIATN);
    015C E3E2      LDI	R30,0x32
    015D E0F0      LDI	R31,0
    015E 9124      LPM	R18,0(Z)
    015F E105      LDI	R16,0x15
    0160 DF5A      RCALL	_halSpiWriteReg
(0377)     halSpiWriteReg(CCxxx0_FREND1,   rfSettings.FREND1);
    0161 E3E3      LDI	R30,0x33
    0162 E0F0      LDI	R31,0
    0163 9124      LPM	R18,0(Z)
    0164 E201      LDI	R16,0x21
    0165 DF55      RCALL	_halSpiWriteReg
(0378)     halSpiWriteReg(CCxxx0_FREND0,   rfSettings.FREND0);
    0166 E3E4      LDI	R30,0x34
    0167 E0F0      LDI	R31,0
    0168 9124      LPM	R18,0(Z)
    0169 E202      LDI	R16,0x22
    016A DF50      RCALL	_halSpiWriteReg
(0379)     halSpiWriteReg(CCxxx0_MCSM0 ,   rfSettings.MCSM0 );
    016B E3E5      LDI	R30,0x35
    016C E0F0      LDI	R31,0
    016D 9124      LPM	R18,0(Z)
    016E E108      LDI	R16,0x18
    016F DF4B      RCALL	_halSpiWriteReg
(0380)     halSpiWriteReg(CCxxx0_FOCCFG,   rfSettings.FOCCFG);
    0170 E3E6      LDI	R30,0x36
    0171 E0F0      LDI	R31,0
    0172 9124      LPM	R18,0(Z)
    0173 E109      LDI	R16,0x19
    0174 DF46      RCALL	_halSpiWriteReg
(0381)     halSpiWriteReg(CCxxx0_BSCFG,    rfSettings.BSCFG);
    0175 E3E7      LDI	R30,0x37
    0176 E0F0      LDI	R31,0
    0177 9124      LPM	R18,0(Z)
    0178 E10A      LDI	R16,0x1A
    0179 DF41      RCALL	_halSpiWriteReg
(0382)     halSpiWriteReg(CCxxx0_AGCCTRL2, rfSettings.AGCCTRL2);
    017A E3E8      LDI	R30,0x38
    017B E0F0      LDI	R31,0
    017C 9124      LPM	R18,0(Z)
    017D E10B      LDI	R16,0x1B
    017E DF3C      RCALL	_halSpiWriteReg
(0383) 	halSpiWriteReg(CCxxx0_AGCCTRL1, rfSettings.AGCCTRL1);
    017F E3E9      LDI	R30,0x39
    0180 E0F0      LDI	R31,0
    0181 9124      LPM	R18,0(Z)
    0182 E10C      LDI	R16,0x1C
    0183 DF37      RCALL	_halSpiWriteReg
(0384)     halSpiWriteReg(CCxxx0_AGCCTRL0, rfSettings.AGCCTRL0);
    0184 E3EA      LDI	R30,0x3A
    0185 E0F0      LDI	R31,0
    0186 9124      LPM	R18,0(Z)
    0187 E10D      LDI	R16,0x1D
    0188 DF32      RCALL	_halSpiWriteReg
(0385)     halSpiWriteReg(CCxxx0_FSCAL3,   rfSettings.FSCAL3);
    0189 E3EB      LDI	R30,0x3B
    018A E0F0      LDI	R31,0
    018B 9124      LPM	R18,0(Z)
    018C E203      LDI	R16,0x23
    018D DF2D      RCALL	_halSpiWriteReg
(0386) 	halSpiWriteReg(CCxxx0_FSCAL2,   rfSettings.FSCAL2);
    018E E3EC      LDI	R30,0x3C
    018F E0F0      LDI	R31,0
    0190 9124      LPM	R18,0(Z)
    0191 E204      LDI	R16,0x24
    0192 DF28      RCALL	_halSpiWriteReg
(0387) 	halSpiWriteReg(CCxxx0_FSCAL1,   rfSettings.FSCAL1);
    0193 E3ED      LDI	R30,0x3D
    0194 E0F0      LDI	R31,0
    0195 9124      LPM	R18,0(Z)
    0196 E205      LDI	R16,0x25
    0197 DF23      RCALL	_halSpiWriteReg
(0388)     halSpiWriteReg(CCxxx0_FSCAL0,   rfSettings.FSCAL0);
    0198 E3EE      LDI	R30,0x3E
    0199 E0F0      LDI	R31,0
    019A 9124      LPM	R18,0(Z)
    019B E206      LDI	R16,0x26
    019C DF1E      RCALL	_halSpiWriteReg
(0389)     halSpiWriteReg(CCxxx0_FSTEST,   rfSettings.FSTEST);
    019D E3EF      LDI	R30,0x3F
    019E E0F0      LDI	R31,0
    019F 9124      LPM	R18,0(Z)
    01A0 E209      LDI	R16,0x29
    01A1 DF19      RCALL	_halSpiWriteReg
(0390)     halSpiWriteReg(CCxxx0_TEST2,    rfSettings.TEST2);
    01A2 E4E0      LDI	R30,0x40
    01A3 E0F0      LDI	R31,0
    01A4 9124      LPM	R18,0(Z)
    01A5 E20C      LDI	R16,0x2C
    01A6 DF14      RCALL	_halSpiWriteReg
(0391)     halSpiWriteReg(CCxxx0_TEST1,    rfSettings.TEST1);
    01A7 E4E1      LDI	R30,0x41
    01A8 E0F0      LDI	R31,0
    01A9 9124      LPM	R18,0(Z)
    01AA E20D      LDI	R16,0x2D
    01AB DF0F      RCALL	_halSpiWriteReg
(0392)     halSpiWriteReg(CCxxx0_TEST0,    rfSettings.TEST0);
    01AC E4E2      LDI	R30,0x42
    01AD E0F0      LDI	R31,0
    01AE 9124      LPM	R18,0(Z)
    01AF E20E      LDI	R16,0x2E
    01B0 DF0A      RCALL	_halSpiWriteReg
(0393)     halSpiWriteReg(CCxxx0_IOCFG2,   rfSettings.IOCFG2);
    01B1 E4E3      LDI	R30,0x43
    01B2 E0F0      LDI	R31,0
    01B3 9124      LPM	R18,0(Z)
    01B4 2700      CLR	R16
    01B5 DF05      RCALL	_halSpiWriteReg
(0394)     halSpiWriteReg(CCxxx0_IOCFG0,   rfSettings.IOCFG0);    
    01B6 E4E4      LDI	R30,0x44
    01B7 E0F0      LDI	R31,0
    01B8 9124      LPM	R18,0(Z)
    01B9 E002      LDI	R16,2
    01BA DF00      RCALL	_halSpiWriteReg
(0395)     halSpiWriteReg(CCxxx0_PKTCTRL1, rfSettings.PKTCTRL1);
    01BB E4E5      LDI	R30,0x45
    01BC E0F0      LDI	R31,0
    01BD 9124      LPM	R18,0(Z)
    01BE E007      LDI	R16,7
    01BF DEFB      RCALL	_halSpiWriteReg
(0396)     halSpiWriteReg(CCxxx0_PKTCTRL0, rfSettings.PKTCTRL0);
    01C0 E4E6      LDI	R30,0x46
    01C1 E0F0      LDI	R31,0
    01C2 9124      LPM	R18,0(Z)
    01C3 E008      LDI	R16,0x8
    01C4 DEF6      RCALL	_halSpiWriteReg
(0397)     halSpiWriteReg(CCxxx0_ADDR,     rfSettings.ADDR);
    01C5 E4E7      LDI	R30,0x47
    01C6 E0F0      LDI	R31,0
    01C7 9124      LPM	R18,0(Z)
    01C8 E009      LDI	R16,0x9
    01C9 DEF1      RCALL	_halSpiWriteReg
(0398)     halSpiWriteReg(CCxxx0_PKTLEN,   rfSettings.PKTLEN);
    01CA E4E8      LDI	R30,0x48
    01CB E0F0      LDI	R31,0
    01CC 9124      LPM	R18,0(Z)
    01CD E006      LDI	R16,6
    01CE DEEC      RCALL	_halSpiWriteReg
    01CF 9508      RET
_halRfSendPacket:

⌨️ 快捷键说明

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