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

📄 cc1100.lis

📁 mega128平台下
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 02BA           ;          value -> R20
 02BA           ;           addr -> R20
                        .even
 02BA           _halSpiReadReg::
 02BA 0E940000          xcall push_gset1
 02BE 402F              mov R20,R16
 02C0           ;       }// halRfSendPacket
 02C0           ; /*******************************************/ 
 02C0           ; /*
 02C0           ;       void TxCCxx00()
 02C0           ;       {
 02C0           ;               unsigned char   i;
 02C0           ;               halSpiWriteReg(CCxxx0_FREND0, 0x10);            //CC1100:POWER=10DBM;CC2500:1DBM
 02C0           ;               Dly1mS(25);;
 02C0           ;               for(i=0;i<4;i++)                                                        //发四次                
 02C0           ;               {
 02C0           ;                       halRfSendPacket(txBuffer_CCxx00, sizeof(txBuffer_CCxx00));
 02C0           ;                       Dly1mS(50);
 02C0           ;               }
 02C0           ;               halSpiWriteReg(CCxxx0_FREND0, 0x15);    //CC1100太近会收不到,将发射功率降低到-10DBM //#define CCxxx0_FREND0       0x22
 02C0           ;               Dly1mS(50);
 02C0           ;               halRfSendPacket(txBuffer_CCxx00, sizeof(txBuffer_CCxx00));
 02C0           ;               Dly1mS(100);
 02C0           ;       }
 02C0           ; */
 02C0           ; /*********************************************************/
 02C0           ;       unsigned char halSpiReadReg(unsigned char addr) 
 02C0           ;       {
 02C0           ;               unsigned char value;
 02C0           ;               CLEAR_CLOCK();
 02C0 A5DE              xcall _CLEAR_CLOCK
 02C2           ;               Dly10us();Dly10us();
 02C2 CADE              xcall _Dly10us
 02C4 C9DE              xcall _Dly10us
 02C6           ;               CLEAR_CSN(); // CSn=0
 02C6 B6DE              xcall _CLEAR_CSN
 02C8           ;               addr|=READ_SINGLE;
 02C8 4068              ori R20,128
 02CA           ;               SPI_write(addr);
 02CA 042F              mov R16,R20
 02CC F4DE              xcall _SPI_write
 02CE           ;               CLEAR_IN();
 02CE AADE              xcall _CLEAR_IN
 02D0           ;               Dly10us();Dly10us();Dly10us();Dly10us();Dly10us();
 02D0 C3DE              xcall _Dly10us
 02D2 C2DE              xcall _Dly10us
 02D4 C1DE              xcall _Dly10us
 02D6 C0DE              xcall _Dly10us
 02D8 BFDE              xcall _Dly10us
 02DA           ;               value=0;
 02DA 4427              clr R20
 02DC           ;               value=SPI_read();
 02DC 1DDF              xcall _SPI_read
 02DE 402F              mov R20,R16
 02E0           ;               Dly10us();Dly10us();Dly10us();
 02E0 BBDE              xcall _Dly10us
 02E2 BADE              xcall _Dly10us
 02E4 B9DE              xcall _Dly10us
 02E6           ;               CLEAR_CLOCK();
 02E6 92DE              xcall _CLEAR_CLOCK
 02E8           ;               CLEAR_IN();
 02E8 9DDE              xcall _CLEAR_IN
 02EA           ;               SET_CSN(); // CSn=0 P_CSn=0;
 02EA A2DE              xcall _SET_CSN
 02EC           ;               return value;           
 02EC 042F              mov R16,R20
 02EE           L87:
 02EE 0E940000          xcall pop_gset1
 02F2                   .dbline 0 ; func end
 02F2 0895              ret
 02F4           ;          value -> R20
 02F4           ;              i -> R22
 02F4           ;          count -> R10
 02F4           ;         buffer -> R12,R13
 02F4           ;           addr -> R20
                        .even
 02F4           _halSpiReadBurstReg::
 02F4 0E940000          xcall push_gset4
 02F8 6901              movw R12,R18
 02FA 402F              mov R20,R16
 02FC A884              ldd R10,y+8
 02FE           ;       }
 02FE           ; /**************************************************/
 02FE           ;       void halSpiReadBurstReg(unsigned char addr, unsigned char *buffer, unsigned char count)
 02FE           ;       {
 02FE           ;               unsigned char i,value;
 02FE           ;               CLEAR_CLOCK();
 02FE 86DE              xcall _CLEAR_CLOCK
 0300           ;               Dly10us();Dly10us();
 0300 ABDE              xcall _Dly10us
 0302 AADE              xcall _Dly10us
 0304           ;               CLEAR_CSN(); // CSn=0 P_CSn=0;
 0304 97DE              xcall _CLEAR_CSN
 0306           ;               addr|=READ_BURST;
 0306 406C              ori R20,192
 0308           ;               SPI_write(addr);
 0308 042F              mov R16,R20
 030A D5DE              xcall _SPI_write
 030C           ;               CLEAR_IN();
 030C 8BDE              xcall _CLEAR_IN
 030E           ;               Dly10us();Dly10us();Dly10us();Dly10us();Dly10us();
 030E A4DE              xcall _Dly10us
 0310 A3DE              xcall _Dly10us
 0312 A2DE              xcall _Dly10us
 0314 A1DE              xcall _Dly10us
 0316 A0DE              xcall _Dly10us
 0318           ;               value=0; 
 0318 4427              clr R20
 031A           ;               for(i=0;i<count;i++)
 031A 6627              clr R22
 031C 08C0              xjmp L92
 031E           L89:
 031E FCDE              xcall _SPI_read
 0320 402F              mov R20,R16
 0322 E62F              mov R30,R22
 0324 FF27              clr R31
 0326 EC0D              add R30,R12
 0328 FD1D              adc R31,R13
 032A 4083              std z+0,R20
 032C           L90:
 032C 6395              inc R22
 032E           L92:
 032E 6A15              cp R22,R10
 0330 B0F3              brlo L89
 0332           ;               {
 0332           ;                       value=SPI_read();
 0332           ;                       buffer[i]=value;
 0332           ;               }
 0332           ;               Dly10us();Dly10us();Dly10us();
 0332 92DE              xcall _Dly10us
 0334 91DE              xcall _Dly10us
 0336 90DE              xcall _Dly10us
 0338           ;               CLEAR_CLOCK();
 0338 69DE              xcall _CLEAR_CLOCK
 033A           ;               CLEAR_IN();
 033A 74DE              xcall _CLEAR_IN
 033C           ;               SET_CSN(); // CSn=0 P_CSn=0;
 033C 79DE              xcall _SET_CSN
 033E           L88:
 033E 0E940000          xcall pop_gset4
 0342                   .dbline 0 ; func end
 0342 0895              ret
 0344           ;         rd_pin -> <dead>
 0344           ;          value -> R22
 0344           ;           addr -> R20
                        .even
 0344           _halSpiReadStatus::
 0344 0E940000          xcall push_gset2
 0348 402F              mov R20,R16
 034A           ;       }
 034A           ; /**************************************************/
 034A           ;       unsigned char halSpiReadStatus(unsigned char addr) 
 034A           ;       {
 034A           ;               unsigned char value,rd_pin;
 034A           ;         CLEAR_CSN(); // CSn=0 P_CSn=0;
 034A 74DE              xcall _CLEAR_CSN
 034C           L94:
 034C           L95:
 034C           ; 	  while(GET_OUT());
 034C 75DE              xcall _GET_OUT
 034E 0023              tst R16
 0350 E9F7              brne L94
 0352           ;               CLEAR_CLOCK(); //SCLK=0  //P_SCLK=0;
 0352 5CDE              xcall _CLEAR_CLOCK
 0354           ;               addr|=READ_BURST;
 0354 406C              ori R20,192
 0356           ;               SPI_write(addr);
 0356 042F              mov R16,R20
 0358 AEDE              xcall _SPI_write
 035A           ;               value=SPI_read();
 035A DEDE              xcall _SPI_read
 035C 602F              mov R22,R16
 035E           ;               CLEAR_CLOCK(); //SCLK=0  //P_SCLK=0;
 035E 56DE              xcall _CLEAR_CLOCK
 0360           ;               CLEAR_IN(); // SI=0 P_SI=0;
 0360 61DE              xcall _CLEAR_IN
 0362           ;         SET_CSN();  //CSn=1   P_CSn=1;
 0362 66DE              xcall _SET_CSN
 0364           ;               return value;
 0364 062F              mov R16,R22
 0366           L93:
 0366 0E940000          xcall pop_gset2
 036A                   .dbline 0 ; func end
 036A 0895              ret
                        .even
 036C           _halRfWriteRfSettings::
 036C           ; 	}// halSpiReadStatus
 036C           ; /**************************************************/
 036C           ; 	void halRfWriteRfSettings() 
 036C           ; 	{
 036C           L98:
 036C           ; 	l_setCC1100:	
 036C           ; 		halSpiWriteReg(CCxxx0_FSCTRL1, 0x0C);	
 036C 2CE0              ldi R18,12
 036E 0BE0              ldi R16,11
 0370 0BDF              xcall _halSpiWriteReg
 0372           ;               halSpiWriteReg(CCxxx0_FSCTRL0, 0x00);   
 0372 2227              clr R18
 0374 0CE0              ldi R16,12
 0376 08DF              xcall _halSpiWriteReg
 0378           ;               halSpiWriteReg(CCxxx0_FREQ2, 0x10);
 0378 20E1              ldi R18,16
 037A 0DE0              ldi R16,13
 037C 05DF              xcall _halSpiWriteReg
 037E           ;               halSpiWriteReg(CCxxx0_FREQ1, 0x09);
 037E 29E0              ldi R18,9
 0380 0EE0              ldi R16,14
 0382 02DF              xcall _halSpiWriteReg
 0384           ;               halSpiWriteReg(CCxxx0_FREQ0, 0x7B);
 0384 2BE7              ldi R18,123
 0386 0FE0              ldi R16,15
 0388 FFDE              xcall _halSpiWriteReg
 038A           ;               halSpiWriteReg(CCxxx0_MDMCFG4, 0xC6);
 038A 26EC              ldi R18,198
 038C 00E1              ldi R16,16
 038E FCDE              xcall _halSpiWriteReg
 0390           ;               halSpiWriteReg(CCxxx0_MDMCFG3, 0x83); 
 0390 23E8              ldi R18,131
 0392 01E1              ldi R16,17
 0394 F9DE              xcall _halSpiWriteReg
 0396           ;               halSpiWriteReg(CCxxx0_MDMCFG2, 0x02);
 0396 22E0              ldi R18,2
 0398 02E1              ldi R16,18
 039A F6DE              xcall _halSpiWriteReg
 039C           ;               halSpiWriteReg(CCxxx0_MDMCFG1, 0x22);
 039C 22E2              ldi R18,34
 039E 03E1              ldi R16,19
 03A0 F3DE              xcall _halSpiWriteReg
 03A2           ;               halSpiWriteReg(CCxxx0_MDMCFG0, 0xF8);
 03A2 28EF              ldi R18,248
 03A4 04E1              ldi R16,20
 03A6 F0DE              xcall _halSpiWriteReg
 03A8           ;               halSpiWriteReg(CCxxx0_CHANNR, 0x05);
 03A8 25E0              ldi R18,5
 03AA 0AE0              ldi R16,10
 03AC EDDE              xcall _halSpiWriteReg
 03AE           ;               halSpiWriteReg(CCxxx0_DEVIATN, 0x30);
 03AE 20E3              ldi R18,48
 03B0 05E1              ldi R16,21
 03B2 EADE              xcall _halSpiWriteReg
 03B4           ;               halSpiWriteReg(CCxxx0_FREND1, 0x56);
 03B4 26E5              ldi R18,86
 03B6 01E2              ldi R16,33
 03B8 E7DE              xcall _halSpiWriteReg
 03BA           ;               halSpiWriteReg(CCxxx0_FREND0, 0x10);
 03BA 20E1              ldi R18,16
 03BC 02E2              ldi R16,34
 03BE E4DE              xcall _halSpiWriteReg
 03C0           ;               
 03C0           ;               
 03C0           ;               halSpiWriteReg(CCxxx0_MCSM0, 0x18);
 03C0 28E1              ldi R18,24
 03C2 08E1              ldi R16,24
 03C4 E1DE              xcall _halSpiWriteReg
 03C6           ;               halSpiWriteReg(CCxxx0_FOCCFG, 0x15);
 03C6 25E1              ldi R18,21
 03C8 09E1              ldi R16,25
 03CA DEDE              xcall _halSpiWriteReg
 03CC           ;               halSpiWriteReg(CCxxx0_BSCFG, 0x6C);
 03CC 2CE6              ldi R18,108
 03CE 0AE1              ldi R16,26
 03D0 DBDE              xcall _halSpiWriteReg
 03D2           ;               halSpiWriteReg(CCxxx0_AGCCTRL2, 0x03);
 03D2 23E0              ldi R18,3
 03D4 0BE1              ldi R16,27
 03D6 D8DE              xcall _halSpiWriteReg
 03D8           ;               halSpiWriteReg(CCxxx0_AGCCTRL0, 0x91);
 03D8 21E9              ldi R18,145
 03DA 0DE1              ldi R16,29
 03DC D5DE              xcall _halSpiWriteReg
 03DE           ;               halSpiWriteReg(CCxxx0_FSCAL3, 0xA9);
 03DE 29EA              ldi R18,169
 03E0 03E2              ldi R16,35
 03E2 D2DE              xcall _halSpiWriteReg
 03E4           ;               halSpiWriteReg(CCxxx0_FSCAL2, 0x2A);
 03E4 2AE2              ldi R18,42
 03E6 04E2              ldi R16,36
 03E8 CFDE              xcall _halSpiWriteReg
 03EA           ;               halSpiWriteReg(CCxxx0_FSCAL0, 0x0D);
 03EA 2DE0              ldi R18,13
 03EC 06E2              ldi R16,38
 03EE CCDE              xcall _halSpiWriteReg
 03F0           ;               halSpiWriteReg(CCxxx0_FSTEST, 0x59);
 03F0 29E5              ldi R18,89
 03F2 09E2              ldi R16,41
 03F4 C9DE              xcall _halSpiWriteReg
 03F6           ;               halSpiWriteReg(CCxxx0_TEST2, 0x86);
 03F6 26E8              ldi R18,134
 03F8 0CE2              ldi R16,44
 03FA C6DE              xcall _halSpiWriteReg
 03FC           ;               halSpiWriteReg(CCxxx0_TEST1, 0x3D);
 03FC 2DE3              ldi R18,61
 03FE 0DE2              ldi R16,45
 0400 C3DE              xcall _halSpiWriteReg
 0402           ;               halSpiWriteReg(CCxxx0_TEST0, 0x09);
 0402 29E0              ldi R18,9
 0404 0EE2              ldi R16,46
 0406 C0DE              xcall _halSpiWriteReg
 0408           ;               
 0408           ;               
 0408           ;         halSpiWriteReg(CCxxx0_IOCFG2, 0x24);
 0408 24E2              ldi R18,36
 040A 0027              clr R16
 040C BDDE              xcall _halSpiWriteReg
 040E           ;                 
 040E           ;         halSpiWriteReg(CCxxx0_IOCFG0, 0x06);
 040E 26E0              ldi R18,6
 0410 02E0              ldi R16,2
 0412 BADE              xcall _halSpiWriteReg
 0414           ;               halSpiWriteReg(CCxxx0_PKTCTRL1, 0x04);
 0414 24E0              ldi R18,4
 0416 07E0              ldi R16,7
 0418 B7DE              xcall _halSpiWriteReg
 041A           ;               halSpiWriteReg(CCxxx0_PKTCTRL0, 0x05);
 041A 25E0              ldi R18,5
 041C 08E0              ldi R16,8
 041E B4DE              xcall _halSpiWriteReg
 0420           ;               halSpiWriteReg(CCxxx0_ADDR, 0x00);
 0420 2227              clr R18
 0422 09E0              ldi R16,9
 0424 B1DE              xcall _halSpiWriteReg
 0426           ;               
 0426           ;               halSpiWriteReg(CCxxx0_PKTLEN, 0x1F); // hejie ,接收数据长度
 0426 2FE1              ldi R18,31
 0428 06E0              ldi R16,6
 042A AEDE              xcall _halSpiWriteReg
 042C           ;               //halSpiWriteReg(CCxxx0_PKTLEN, 0xFF);
 042C           ;               
 042C           ;               halSpiWriteReg(CCxxx0_MCSM2, 0x08);  // CCxxx0_MCSM2 修改限制时间 默认为07 修改为00
 042C 28E0              ldi R18,8
 042E 06E1              ldi R16,22
 0430 ABDE              xcall _halSpiWriteReg
 0432           ;               //halSpiWriteReg(CCxxx0_FIFOTHR, 0x07);
 0432           ;               
 0432           ;               
 0432           ;               //CCxxx0_MCSM1
 0432           ;               //halSpiWriteReg(CCxxx0_MCSM0, 0x14);     // 状态切换时候 校准频率 。
 0432           ;               /*halSpiWriteReg(CCxxx0_FSCTRL1, 0x08); 
 0432           ;               halSpiWriteReg(CCxxx0_FSCTRL0, 0x00);   
 0432           ;               halSpiWriteReg(CCxxx0_FREQ2, 0x10);
 0432           ;               halSpiWriteReg(CCxxx0_FREQ1, 0x12);
 0432           ;               halSpiWriteReg(CCxxx0_FREQ0, 0x34);
 0432           ;               halSpiWriteReg(CCxxx0_MDMCFG4, 0xf6);
 0432           ;               halSpiWriteReg(CCxxx0_MDMCFG3, 0x75); 
 0432           ;               halSpiWriteReg(CCxxx0_MDMCFG2, 0x13);
 0432           ;               halSpiWriteReg(CCxxx0_MDMCFG1, 0x22);
 0432           ;               halSpiWriteReg(CCxxx0_MDMCFG0, 0xe5);
 0432           ;               halSpiWriteReg(CCxxx0_CHANNR, 0x00);
 0432           ;               halSpiWriteReg(CCxxx0_DEVIATN, 0x14);
 0432           ;               halSpiWriteReg(CCxxx0_FREND1, 0x56);
 0432           ;               halSpiWriteReg(CCxxx0_FREND0, 0x10);
 0432           ;               halSpiWriteReg(CCxxx0_MCSM0, 0x18);
 0432           ;               halSpiWriteReg(CCxxx0_FOCCFG, 0x16);
 0432           ;               halSpiWriteReg(CCxxx0_BSCFG, 0x6C);
 0432           ;               halSpiWriteReg(CCxxx0_AGCCTRL2, 0x03);
 0432           ;               halSpiWriteReg(CCxxx0_AGCCTRL1, 0x40);
 0432           ;               halSpiWriteReg(CCxxx0_AGCCTRL0, 0x91);
 0432           ;               halSpiWriteReg(CCxxx0_FSCAL3, 0xA9);
 0432           ;               halSpiWriteReg(CCxxx0_FSCAL2, 0x2A);

⌨️ 快捷键说明

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