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

📄 cc1100.lis

📁 mega128平台下
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0248           L72:
 0248           L73:
 0248 4F5F              subi R20,255  ; offset = 1
 024A 5F4F              sbci R21,255
 024C           L75:
 024C           ; 		for(i=0;i<100;i++);
 024C 4436              cpi R20,100
 024E E0E0              ldi R30,0
 0250 5E07              cpc R21,R30
 0252 D0F3              brlo L72
 0254           ;               SET_CSN();
 0254 EDDE              xcall _SET_CSN
 0256 4427              clr R20
 0258 5527              clr R21
 025A 02C0              xjmp L79
 025C           L76:
 025C           L77:
 025C 4F5F              subi R20,255  ; offset = 1
 025E 5F4F              sbci R21,255
 0260           L79:
 0260           ; 		for(i=0;i<2000;i++);
 0260 403D              cpi R20,208
 0262 E7E0              ldi R30,7
 0264 5E07              cpc R21,R30
 0266 D0F3              brlo L76
 0268           ;               CLEAR_CSN();
 0268 E5DE              xcall _CLEAR_CSN
 026A           L80:
 026A           L81:
 026A           ; 		while(GET_OUT());
 026A E6DE              xcall _GET_OUT
 026C 0030              cpi R16,0
 026E 0107              cpc R16,R17
 0270 E1F7              brne L80
 0272           X4:
 0272           ; 		halSpiStrobe(CCxxx0_SRES);
 0272 00E3              ldi R16,48
 0274 A2DF              xcall _halSpiStrobe
 0276           ;               CLEAR_CLOCK();
 0276 CADE              xcall _CLEAR_CLOCK
 0278           ;               CLEAR_IN();
 0278 D5DE              xcall _CLEAR_IN
 027A           ;               SET_CSN();
 027A DADE              xcall _SET_CSN
 027C           L67:
 027C 0E940000          xcall pop_gset1
 0280                   .dbline 0 ; func end
 0280 0895              ret
 0282           ;           size -> R22
 0282           ;       txBuffer -> R20,R21
                        .even
 0282           _halRfSendPacket::
 0282 0E940000          xcall push_gset2
 0286 622F              mov R22,R18
 0288 A801              movw R20,R16
 028A 2197              sbiw R28,1
 028C           ;       }
 028C           ; /*******************************************/ 
 028C           ;       unsigned char halRfSendPacket(unsigned char *txBuffer, unsigned char size)
 028C           ;       {
 028C           ;               halSpiStrobe(CCxxx0_SFTX);
 028C 0BE3              ldi R16,59
 028E 95DF              xcall _halSpiStrobe
 0290           ;               Dly1mS(15);
 0290 0FE0              ldi R16,15
 0292 10E0              ldi R17,0
 0294 F4DE              xcall _Dly1mS
 0296           ;               //Dly1mS(25);
 0296           ;               halSpiWriteBurstReg(CCxxx0_TXFIFO, txBuffer, size);
 0296 6883              std y+0,R22
 0298 9A01              movw R18,R20
 029A 0FE7              ldi R16,127
 029C 9FDF              xcall _halSpiWriteBurstReg
 029E           ;               Dly1mS(15);
 029E 0FE0              ldi R16,15
 02A0 10E0              ldi R17,0
 02A2 EDDE              xcall _Dly1mS
 02A4           ;               //Dly1mS(25);
 02A4           ;               halSpiStrobe(CCxxx0_STX);
 02A4 05E3              ldi R16,53
 02A6 89DF              xcall _halSpiStrobe
 02A8 03C0              xjmp L85
 02AA           L84:
 02AA 01E0              ldi R16,1
 02AC 10E0              ldi R17,0
 02AE E7DE              xcall _Dly1mS
 02B0           L85:
 02B0           ; 		while(spiGetRxTxStatus()&0x70)
 02B0 5DDF              xcall _spiGetRxTxStatus
 02B2 802F              mov R24,R16
 02B4 8077              andi R24,112
 02B6 C9F7              brne L84
 02B8           ;               {
 02B8           ;                       Dly1mS(1);
 02B8           ;                       //Dly1mS(2);
 02B8           ;               }
 02B8           ;               SEND_DONE=0x01;
 02B8 81E0              ldi R24,1
 02BA 80930800          sts _SEND_DONE,R24
 02BE           ;               return 0;
 02BE 0027              clr R16
 02C0           L83:
 02C0 2196              adiw R28,1
 02C2 0E940000          xcall pop_gset2
 02C6                   .dbline 0 ; func end
 02C6 0895              ret
 02C8           ;          value -> R20
 02C8           ;           addr -> R20
                        .even
 02C8           _halSpiReadReg::
 02C8 0E940000          xcall push_gset1
 02CC 402F              mov R20,R16
 02CE           ;       }// halRfSendPacket
 02CE           ; /*******************************************/ 
 02CE           ; /*
 02CE           ;       void TxCCxx00()
 02CE           ;       {
 02CE           ;               unsigned char   i;
 02CE           ;               halSpiWriteReg(CCxxx0_FREND0, 0x10);            //CC1100:POWER=10DBM;CC2500:1DBM
 02CE           ;               Dly1mS(25);;
 02CE           ;               for(i=0;i<4;i++)                                                        //发四次                
 02CE           ;               {
 02CE           ;                       halRfSendPacket(txBuffer_CCxx00, sizeof(txBuffer_CCxx00));
 02CE           ;                       Dly1mS(50);
 02CE           ;               }
 02CE           ;               halSpiWriteReg(CCxxx0_FREND0, 0x15);    //CC1100太近会收不到,将发射功率降低到-10DBM //#define CCxxx0_FREND0       0x22
 02CE           ;               Dly1mS(50);
 02CE           ;               halRfSendPacket(txBuffer_CCxx00, sizeof(txBuffer_CCxx00));
 02CE           ;               Dly1mS(100);
 02CE           ;       }
 02CE           ; */
 02CE           ; /*********************************************************/
 02CE           ;       unsigned char halSpiReadReg(unsigned char addr) 
 02CE           ;       {
 02CE           ;               unsigned char value;
 02CE           ;               CLEAR_CLOCK();
 02CE 9EDE              xcall _CLEAR_CLOCK
 02D0           ;               Dly10us();Dly10us();
 02D0 C6DE              xcall _Dly10us
 02D2 C5DE              xcall _Dly10us
 02D4           ;               CLEAR_CSN(); // CSn=0
 02D4 AFDE              xcall _CLEAR_CSN
 02D6           ;               addr|=READ_SINGLE;
 02D6 4068              ori R20,128
 02D8           ;               SPI_write(addr);
 02D8 042F              mov R16,R20
 02DA F0DE              xcall _SPI_write
 02DC           ;               CLEAR_IN();
 02DC A3DE              xcall _CLEAR_IN
 02DE           ;               Dly10us();Dly10us();Dly10us();Dly10us();Dly10us();
 02DE BFDE              xcall _Dly10us
 02E0 BEDE              xcall _Dly10us
 02E2 BDDE              xcall _Dly10us
 02E4 BCDE              xcall _Dly10us
 02E6 BBDE              xcall _Dly10us
 02E8           ;               value=0;
 02E8 4427              clr R20
 02EA           ;               value=SPI_read();
 02EA 19DF              xcall _SPI_read
 02EC 402F              mov R20,R16
 02EE           ;               Dly10us();Dly10us();Dly10us();
 02EE B7DE              xcall _Dly10us
 02F0 B6DE              xcall _Dly10us
 02F2 B5DE              xcall _Dly10us
 02F4           ;               CLEAR_CLOCK();
 02F4 8BDE              xcall _CLEAR_CLOCK
 02F6           ;               CLEAR_IN();
 02F6 96DE              xcall _CLEAR_IN
 02F8           ;               SET_CSN(); // CSn=0 P_CSn=0;
 02F8 9BDE              xcall _SET_CSN
 02FA           ;               return value;           
 02FA 042F              mov R16,R20
 02FC           L87:
 02FC 0E940000          xcall pop_gset1
 0300                   .dbline 0 ; func end
 0300 0895              ret
 0302           ;          value -> R20
 0302           ;              i -> R22
 0302           ;          count -> R10
 0302           ;         buffer -> R12,R13
 0302           ;           addr -> R20
                        .even
 0302           _halSpiReadBurstReg::
 0302 0E940000          xcall push_gset4
 0306 6901              movw R12,R18
 0308 402F              mov R20,R16
 030A A884              ldd R10,y+8
 030C           ;       }
 030C           ; /**************************************************/
 030C           ;       void halSpiReadBurstReg(unsigned char addr, unsigned char *buffer, unsigned char count)
 030C           ;       {
 030C           ;               unsigned char i,value;
 030C           ;               CLEAR_CLOCK();
 030C 7FDE              xcall _CLEAR_CLOCK
 030E           ;               Dly10us();Dly10us();
 030E A7DE              xcall _Dly10us
 0310 A6DE              xcall _Dly10us
 0312           ;               CLEAR_CSN(); // CSn=0 P_CSn=0;
 0312 90DE              xcall _CLEAR_CSN
 0314           ;               addr|=READ_BURST;
 0314 406C              ori R20,192
 0316           ;               SPI_write(addr);
 0316 042F              mov R16,R20
 0318 D1DE              xcall _SPI_write
 031A           ;               CLEAR_IN();
 031A 84DE              xcall _CLEAR_IN
 031C           ;               Dly10us();Dly10us();Dly10us();Dly10us();Dly10us();
 031C A0DE              xcall _Dly10us
 031E 9FDE              xcall _Dly10us
 0320 9EDE              xcall _Dly10us
 0322 9DDE              xcall _Dly10us
 0324 9CDE              xcall _Dly10us
 0326           ;               value=0; 
 0326 4427              clr R20
 0328           ;               for(i=0;i<count;i++)
 0328 6627              clr R22
 032A 08C0              xjmp L92
 032C           L89:
 032C F8DE              xcall _SPI_read
 032E 402F              mov R20,R16
 0330 E62F              mov R30,R22
 0332 FF27              clr R31
 0334 EC0D              add R30,R12
 0336 FD1D              adc R31,R13
 0338 4083              std z+0,R20
 033A           L90:
 033A 6395              inc R22
 033C           L92:
 033C 6A15              cp R22,R10
 033E B0F3              brlo L89
 0340           ;               {
 0340           ;                       value=SPI_read();
 0340           ;                       buffer[i]=value;
 0340           ;               }
 0340           ;               Dly10us();Dly10us();Dly10us();
 0340 8EDE              xcall _Dly10us
 0342 8DDE              xcall _Dly10us
 0344 8CDE              xcall _Dly10us
 0346           ;               CLEAR_CLOCK();
 0346 62DE              xcall _CLEAR_CLOCK
 0348           ;               CLEAR_IN();
 0348 6DDE              xcall _CLEAR_IN
 034A           ;               SET_CSN(); // CSn=0 P_CSn=0;
 034A 72DE              xcall _SET_CSN
 034C           L88:
 034C 0E940000          xcall pop_gset4
 0350                   .dbline 0 ; func end
 0350 0895              ret
 0352           ;         rd_pin -> <dead>
 0352           ;          value -> R22
 0352           ;           addr -> R20
                        .even
 0352           _halSpiReadStatus::
 0352 0E940000          xcall push_gset2
 0356 402F              mov R20,R16
 0358           ;       }
 0358           ; /**************************************************/
 0358           ;       unsigned char halSpiReadStatus(unsigned char addr) 
 0358           ;       {
 0358           ;               unsigned char value,rd_pin;
 0358           ;         CLEAR_CSN(); // CSn=0 P_CSn=0;
 0358 6DDE              xcall _CLEAR_CSN
 035A           L94:
 035A           L95:
 035A           ; 	  while(GET_OUT());
 035A 6EDE              xcall _GET_OUT
 035C 0030              cpi R16,0
 035E 0107              cpc R16,R17
 0360 E1F7              brne L94
 0362           X5:
 0362           ; 		CLEAR_CLOCK(); //SCLK=0  //P_SCLK=0;
 0362 54DE              xcall _CLEAR_CLOCK
 0364           ;               addr|=READ_BURST;
 0364 406C              ori R20,192
 0366           ;               SPI_write(addr);
 0366 042F              mov R16,R20
 0368 A9DE              xcall _SPI_write
 036A           ;               value=SPI_read();
 036A D9DE              xcall _SPI_read
 036C 602F              mov R22,R16
 036E           ;               CLEAR_CLOCK(); //SCLK=0  //P_SCLK=0;
 036E 4EDE              xcall _CLEAR_CLOCK
 0370           ;               CLEAR_IN(); // SI=0 P_SI=0;
 0370 59DE              xcall _CLEAR_IN
 0372           ;         SET_CSN();  //CSn=1   P_CSn=1;
 0372 5EDE              xcall _SET_CSN
 0374           ;               return value;
 0374 062F              mov R16,R22
 0376           L93:
 0376 0E940000          xcall pop_gset2
 037A                   .dbline 0 ; func end
 037A 0895              ret
                        .even
 037C           _halRfWriteRfSettings::
 037C           ; 	}// halSpiReadStatus
 037C           ; /**************************************************/
 037C           ; 	void halRfWriteRfSettings() 
 037C           ; 	{
 037C           L98:
 037C           ; 	l_setCC1100:	
 037C           ; 		halSpiWriteReg(CCxxx0_FSCTRL1, 0x0C);	
 037C 2CE0              ldi R18,12
 037E 0BE0              ldi R16,11
 0380 07DF              xcall _halSpiWriteReg
 0382           ;               

⌨️ 快捷键说明

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