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

📄 cc1100.lis

📁 mega128平台下
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0382           ;               halSpiWriteReg(CCxxx0_FSCTRL0, 0x00);   
 0382 2227              clr R18
 0384 0CE0              ldi R16,12
 0386 04DF              xcall _halSpiWriteReg
 0388           ;               halSpiWriteReg(CCxxx0_FREQ2, 0x10);
 0388 20E1              ldi R18,16
 038A 0DE0              ldi R16,13
 038C 01DF              xcall _halSpiWriteReg
 038E           ;               halSpiWriteReg(CCxxx0_FREQ1, 0x09);
 038E 29E0              ldi R18,9
 0390 0EE0              ldi R16,14
 0392 FEDE              xcall _halSpiWriteReg
 0394           ;               halSpiWriteReg(CCxxx0_FREQ0, 0x7B);
 0394 2BE7              ldi R18,123
 0396 0FE0              ldi R16,15
 0398 FBDE              xcall _halSpiWriteReg
 039A           ;               halSpiWriteReg(CCxxx0_MDMCFG4, 0xC6);
 039A 26EC              ldi R18,198
 039C 00E1              ldi R16,16
 039E F8DE              xcall _halSpiWriteReg
 03A0           ;               halSpiWriteReg(CCxxx0_MDMCFG3, 0x83); 
 03A0 23E8              ldi R18,131
 03A2 01E1              ldi R16,17
 03A4 F5DE              xcall _halSpiWriteReg
 03A6           ;               halSpiWriteReg(CCxxx0_MDMCFG2, 0x02);
 03A6 22E0              ldi R18,2
 03A8 02E1              ldi R16,18
 03AA F2DE              xcall _halSpiWriteReg
 03AC           ;               halSpiWriteReg(CCxxx0_MDMCFG1, 0x22);
 03AC 22E2              ldi R18,34
 03AE 03E1              ldi R16,19
 03B0 EFDE              xcall _halSpiWriteReg
 03B2           ;               halSpiWriteReg(CCxxx0_MDMCFG0, 0xF8);
 03B2 28EF              ldi R18,248
 03B4 04E1              ldi R16,20
 03B6 ECDE              xcall _halSpiWriteReg
 03B8           ;               halSpiWriteReg(CCxxx0_CHANNR, 0x00);
 03B8 2227              clr R18
 03BA 0AE0              ldi R16,10
 03BC E9DE              xcall _halSpiWriteReg
 03BE           ;               halSpiWriteReg(CCxxx0_DEVIATN, 0x30);
 03BE 20E3              ldi R18,48
 03C0 05E1              ldi R16,21
 03C2 E6DE              xcall _halSpiWriteReg
 03C4           ;               halSpiWriteReg(CCxxx0_FREND1, 0x56);
 03C4 26E5              ldi R18,86
 03C6 01E2              ldi R16,33
 03C8 E3DE              xcall _halSpiWriteReg
 03CA           ;               halSpiWriteReg(CCxxx0_FREND0, 0x10);
 03CA 20E1              ldi R18,16
 03CC 02E2              ldi R16,34
 03CE E0DE              xcall _halSpiWriteReg
 03D0           ;               
 03D0           ;               
 03D0           ;               halSpiWriteReg(CCxxx0_MCSM0, 0x18);
 03D0 28E1              ldi R18,24
 03D2 08E1              ldi R16,24
 03D4 DDDE              xcall _halSpiWriteReg
 03D6           ;               halSpiWriteReg(CCxxx0_FOCCFG, 0x15);
 03D6 25E1              ldi R18,21
 03D8 09E1              ldi R16,25
 03DA DADE              xcall _halSpiWriteReg
 03DC           ;               halSpiWriteReg(CCxxx0_BSCFG, 0x6C);
 03DC 2CE6              ldi R18,108
 03DE 0AE1              ldi R16,26
 03E0 D7DE              xcall _halSpiWriteReg
 03E2           ;               halSpiWriteReg(CCxxx0_AGCCTRL2, 0x03);
 03E2 23E0              ldi R18,3
 03E4 0BE1              ldi R16,27
 03E6 D4DE              xcall _halSpiWriteReg
 03E8           ;               halSpiWriteReg(CCxxx0_AGCCTRL0, 0x91);
 03E8 21E9              ldi R18,145
 03EA 0DE1              ldi R16,29
 03EC D1DE              xcall _halSpiWriteReg
 03EE           ;               halSpiWriteReg(CCxxx0_FSCAL3, 0xA9);
 03EE 29EA              ldi R18,169
 03F0 03E2              ldi R16,35
 03F2 CEDE              xcall _halSpiWriteReg
 03F4           ;               halSpiWriteReg(CCxxx0_FSCAL2, 0x2A);
 03F4 2AE2              ldi R18,42
 03F6 04E2              ldi R16,36
 03F8 CBDE              xcall _halSpiWriteReg
 03FA           ;               halSpiWriteReg(CCxxx0_FSCAL0, 0x0D);
 03FA 2DE0              ldi R18,13
 03FC 06E2              ldi R16,38
 03FE C8DE              xcall _halSpiWriteReg
 0400           ;               halSpiWriteReg(CCxxx0_FSTEST, 0x59);
 0400 29E5              ldi R18,89
 0402 09E2              ldi R16,41
 0404 C5DE              xcall _halSpiWriteReg
 0406           ;               halSpiWriteReg(CCxxx0_TEST2, 0x86);
 0406 26E8              ldi R18,134
 0408 0CE2              ldi R16,44
 040A C2DE              xcall _halSpiWriteReg
 040C           ;               halSpiWriteReg(CCxxx0_TEST1, 0x3D);
 040C 2DE3              ldi R18,61
 040E 0DE2              ldi R16,45
 0410 BFDE              xcall _halSpiWriteReg
 0412           ;               halSpiWriteReg(CCxxx0_TEST0, 0x09);
 0412 29E0              ldi R18,9
 0414 0EE2              ldi R16,46
 0416 BCDE              xcall _halSpiWriteReg
 0418           ;               
 0418           ;               
 0418           ;         halSpiWriteReg(CCxxx0_IOCFG2, 0x24);
 0418 24E2              ldi R18,36
 041A 0027              clr R16
 041C B9DE              xcall _halSpiWriteReg
 041E           ;                 
 041E           ;         halSpiWriteReg(CCxxx0_IOCFG0, 0x06);
 041E 26E0              ldi R18,6
 0420 02E0              ldi R16,2
 0422 B6DE              xcall _halSpiWriteReg
 0424           ;               halSpiWriteReg(CCxxx0_PKTCTRL1, 0x04);
 0424 24E0              ldi R18,4
 0426 07E0              ldi R16,7
 0428 B3DE              xcall _halSpiWriteReg
 042A           ;               halSpiWriteReg(CCxxx0_PKTCTRL0, 0x05);
 042A 25E0              ldi R18,5
 042C 08E0              ldi R16,8
 042E B0DE              xcall _halSpiWriteReg
 0430           ;               halSpiWriteReg(CCxxx0_ADDR, 0x00);
 0430 2227              clr R18
 0432 09E0              ldi R16,9
 0434 ADDE              xcall _halSpiWriteReg
 0436           ;               
 0436           ;               halSpiWriteReg(CCxxx0_PKTLEN, 0x1F); // hejie ,接收数据长度
 0436 2FE1              ldi R18,31
 0438 06E0              ldi R16,6
 043A AADE              xcall _halSpiWriteReg
 043C           ;               //halSpiWriteReg(CCxxx0_PKTLEN, 0xFF);
 043C           ;               
 043C           ;               halSpiWriteReg(CCxxx0_MCSM2, 0x08);  // CCxxx0_MCSM2 修改限制时间 默认为07 修改为00
 043C 28E0              ldi R18,8
 043E 06E1              ldi R16,22
 0440 A7DE              xcall _halSpiWriteReg
 0442           ;               //halSpiWriteReg(CCxxx0_FIFOTHR, 0x07);
 0442           ;               
 0442           ;        
 0442           ;               if(halSpiReadReg(CCxxx0_MDMCFG1)!=0x22){
 0442 03E1              ldi R16,19
 0444 41DF              xcall _halSpiReadReg
 0446 0232              cpi R16,34
 0448 09F0              breq L99
 044A           ;                // led1On();
 044A           ;               goto l_setCC1100;
 044A 98CF              xjmp L98
 044C           L99:
 044C           L97:
 044C                   .dbline 0 ; func end
 044C 0895              ret
                        .area vector(rom, abs)
                        .org 8
 0008 0C942702          jmp _cc1100_rx_isr
                        .area text(rom, con, rel)
                ;   packetLength -> R20
                        .even
 044E           _cc1100_rx_isr::
 044E 0E940000          xcall push_lset
 0452 0E940000          xcall push_gset1
 0456 2197              sbiw R28,1
 0458           ;               }
 0458           ;       }
 0458           ; /**************************************************/   
 0458           ; 
 0458           ;   //接收到数据中断
 0458           ; 
 0458           ;   #pragma interrupt_handler cc1100_rx_isr:3
 0458           ;  void cc1100_rx_isr()
 0458           ;         {                         
 0458           ;                   unsigned char packetLength;         
 0458           ;                  // led2Toggle();
 0458           ;                       packetLength = halSpiReadReg(CCxxx0_RXFIFO);                    
 0458 0FEF              ldi R16,255
 045A 36DF              xcall _halSpiReadReg
 045C 402F              mov R20,R16
 045E           ;                       rxBuffer[0]=packetLength;                       
 045E 40930100          sts _rxBuffer,R20
 0462           ;                       if(rxBuffer[0] <= 32)
 0462 80E2              ldi R24,32
 0464 8017              cp R24,R16
 0466 50F0              brlo L102
 0468           ;                   {
 0468           ;                               halSpiReadBurstReg(CCxxx0_RXFIFO, &rxBuffer[1], packetLength);
 0468 4883              std y+0,R20
 046A 20E0              ldi R18,<_rxBuffer+1
 046C 30E0              ldi R19,>_rxBuffer+1
 046E 0FEF              ldi R16,255
 0470 48DF              xcall _halSpiReadBurstReg
 0472           ;                               post(CC1100_receive);
 0472 00E0              ldi R16,<PL_CC1100_receive
 0474 10E0              ldi R17,>PL_CC1100_receive
 0476 0E940000          xcall _post
 047A           ;                   }
 047A 02C0              xjmp L103
 047C           L102:
 047C           ; 		    else
 047C           ; 		    {
 047C           ; 		    	 halSpiStrobe(CCxxx0_SFRX);
 047C 0AE3              ldi R16,58
 047E 9DDE              xcall _halSpiStrobe
 0480           ;                   }
 0480           L103:
 0480           ; 		    halSpiStrobe(CCxxx0_SFRX);
 0480 0AE3              ldi R16,58
 0482 9BDE              xcall _halSpiStrobe
 0484           ;                   halSpiStrobe(CCxxx0_SRX);                                                                                                                                                              
 0484 04E3              ldi R16,52
 0486 99DE              xcall _halSpiStrobe
 0488           L101:
 0488 2196              adiw R28,1
 048A 0E940000          xcall pop_gset1
 048E 0E940000          xcall pop_lset
 0492                   .dbline 0 ; func end
 0492 1895              reti
 0494           ;            nnn -> R20,R21
                        .even
 0494           _CC1100_init::
 0494 0E940000          xcall push_gset1
 0498 2197              sbiw R28,1
 049A           ;         }
 049A           ; /**************************************************/ 
 049A           ; //extern led2On();
 049A           ;       //初始化
 049A           ;       uint8_t CC1100_init()
 049A           ;       {
 049A           ;               uint16_t nnn;
 049A           ;               
 049A           ;               SET_CSN();
 049A CADD              xcall _SET_CSN
 049C           ;               CLEAR_CLOCK();
 049C B7DD              xcall _CLEAR_CLOCK
 049E           ;               CLEAR_IN();
 049E C2DD              xcall _CLEAR_IN
 04A0           ;       
 04A0           ;               CC1100_setInterrupt(0x00);
 04A0 0027              clr R16
 04A2 1127              clr R17
 04A4 54D0              xcall _CC1100_setInterrupt
 04A6           ;               CC1100_POR();
 04A6 BEDE              xcall _CC1100_POR
 04A8 4427              clr R20
 04AA 5527              clr R21
 04AC 02C0              xjmp L109
 04AE           L106:
 04AE           L107:
 04AE 4F5F              subi R20,255  ; offset = 1
 04B0 5F4F              sbci R21,255
 04B2           L109:
 04B2           ; 		for(nnn=0;nnn<500;nnn++);
 04B2 443F              cpi R20,244
 04B4 E1E0              ldi R30,1
 04B6 5E07              cpc R21,R30
 04B8 D0F3              brlo L106
 04BA           ;                       
 04BA           ;               halRfWriteRfSettings();
 04BA 60DF              xcall _halRfWriteRfSettings
 04BC           ;                  // led2On();
 04BC           ;               halSpiWriteBurstReg(CCxxx0_PATABLE, paTable, sizeof(paTable));
 04BC 88E0              ldi R24,8
 04BE 8883              std y+0,R24
 04C0 20E0              ldi R18,<_paTable
 04C2 30E0              ldi R19,>_paTable
 04C4 0EE3              ldi R16,62
 04C6 8ADE              xcall _halSpiWriteBurstReg
 04C8           ;               
 04C8           ;               CC1100_setInterrupt(0x00);
 04C8 0027              clr R16
 04CA 1127              clr R17
 04CC 40D0              xcall _CC1100_setInterrupt
 04CE           ;               CC1100_setStrobe(CCxxx0_SIDLE);
 04CE 06E3              ldi R16,54
 04D0 10E0              ldi R17,0
 04D2 05D0              xcall _CC1100_setStrobe
 04D4           ;               
 04D4           ;               return 1;
 04D4 01E0              ldi R16,1
 04D6           L105:
 04D6 2196              adiw R28,1
 04D8 0E940000          xcall pop_gset1
 04DC                   .dbline 0 ; func end
 04DC 0895              ret
 04DE           ;          state -> R20
                        .even
 04DE           _CC1100_setStrobe::
 04DE 0E940000          xcall push_gset1
 04E2 402F              mov R20,R16
 04E4           ;       } 
 04E4           ;       //设置状态
 04E4           ;       uint8_t CC1100_setStrobe(uint8_t state)
 04E4           ;       {
 04E4           ;               halSpiStrobe(state);
 04E4 042F              mov R16,R20
 04E6 69DE              xcall _halSpiStrobe
 04E8           ;               Dly1mS(5);
 04E8 05E0              ldi R16,5
 04EA 10E0              ldi R17,0
 04EC C8DD              xcall _Dly1mS
 04EE           ;               return 1;
 04EE 01E0              ldi R16,1
 04F0           L110:
 04F0 0E940000          xcall pop_gset1
 04F4                   .dbline 0 ; func end
 04F4 0895              ret
 04F6           ;          value -> R22

⌨️ 快捷键说明

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