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

📄 cc1100.lis

📁 mega128平台下
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 04F6           ;        address -> R20
                        .even
 04F6           _CC1100_setRegister::
 04F6 0E940000          xcall push_gset2
 04FA 622F              mov R22,R18
 04FC 402F              mov R20,R16
 04FE           ;       }
 04FE           ;       //写寄存器
 04FE           ;       uint8_t CC1100_setRegister(uint8_t address,uint8_t value)
 04FE           ;       {
 04FE           ;               halSpiWriteReg(address,value);
 04FE 262F              mov R18,R22
 0500 042F              mov R16,R20
 0502 46DE              xcall _halSpiWriteReg
 0504           ;               return 1;
 0504 01E0              ldi R16,1
 0506           L111:
 0506 0E940000          xcall pop_gset2
 050A                   .dbline 0 ; func end
 050A 0895              ret
 050C           ;        address -> R20
                        .even
 050C           _CC1100_readRegister::
 050C 0E940000          xcall push_gset1
 0510 402F              mov R20,R16
 0512           ;       }
 0512           ;     //读寄存器        
 0512           ;       uint8_t CC1100_readRegister(uint8_t address)
 0512           ;       {               
 0512           ;               rd_reg = halSpiReadReg(address);
 0512 042F              mov R16,R20
 0514 D9DE              xcall _halSpiReadReg
 0516 00930000          sts _rd_reg,R16
 051A           ;               return rd_reg;
 051A           L112:
 051A 0E940000          xcall pop_gset1
 051E                   .dbline 0 ; func end
 051E 0895              ret
 0520           ;        address -> R20
                        .even
 0520           _CC1100_readStatus::
 0520 0E940000          xcall push_gset1
 0524 402F              mov R20,R16
 0526           ;       }
 0526           ;       //读状态
 0526           ;       uint8_t CC1100_readStatus(uint8_t address)
 0526           ;       {               
 0526           ;               return halSpiReadStatus(address);
 0526 042F              mov R16,R20
 0528 14DF              xcall _halSpiReadStatus
 052A           L113:
 052A 0E940000          xcall pop_gset1
 052E                   .dbline 0 ; func end
 052E 0895              ret
 0530           ;          count -> y+5
 0530           ;         buffer -> R22,R23
 0530           ;           addr -> R20
                        .even
 0530           _CC1100_readBurstReg::
 0530 0E940000          xcall push_gset2
 0534 B901              movw R22,R18
 0536 402F              mov R20,R16
 0538 2197              sbiw R28,1
 053A           ;               
 053A           ;       }
 053A           ;       //连续读
 053A           ;       uint8_t CC1100_readBurstReg(unsigned char addr, unsigned char *buffer, unsigned char count)
 053A           ;       {               
 053A           ;                halSpiReadBurstReg(addr, buffer, count);
 053A 0D80              ldd R0,y+5
 053C 0882              std y+0,R0
 053E 9B01              movw R18,R22
 0540 042F              mov R16,R20
 0542 DFDE              xcall _halSpiReadBurstReg
 0544           ;               return 1;
 0544 01E0              ldi R16,1
 0546           L114:
 0546 2196              adiw R28,1
 0548 0E940000          xcall pop_gset2
 054C                   .dbline 0 ; func end
 054C 0895              ret
 054E           ;           flag -> R20
                        .even
 054E           _CC1100_setInterrupt::
 054E 0E940000          xcall push_gset1
 0552 402F              mov R20,R16
 0554           ;       }
 0554           ;       //halSpiReadStatus
 0554           ;       //设置中断
 0554           ;       uint8_t CC1100_setInterrupt(uint8_t flag)
 0554           ;       {
 0554           ;               if(flag==0x00)
 0554 4423              tst R20
 0556 49F4              brne L116
 0558           ;               {
 0558           ;                       EIFR=0x02;EICRA=0x08;EICRB=0x00;EIMSK=0x00;
 0558 82E0              ldi R24,2
 055A 88BF              out 0x38,R24
 055C 88E0              ldi R24,8
 055E 80936A00          sts 106,R24
 0562 2224              clr R2
 0564 2ABE              out 0x3a,R2
 0566 29BE              out 0x39,R2
 0568           ;               }
 0568 12C0              xjmp L117
 056A           L116:
 056A           ; 		else if(flag==0x01)
 056A 4130              cpi R20,1
 056C 61F4              brne L118
 056E           ;               {
 056E           ;                       EIFR=0x02;EICRA=0x08;EICRB=0x00;EIMSK=0x02;
 056E 82E0              ldi R24,2
 0570 88BF              out 0x38,R24
 0572 88E0              ldi R24,8
 0574 80936A00          sts 106,R24
 0578 2224              clr R2
 057A 2ABE              out 0x3a,R2
 057C 82E0              ldi R24,2
 057E 89BF              out 0x39,R24
 0580           ;                       halSpiStrobe(CCxxx0_SRX);
 0580 04E3              ldi R16,52
 0582 1BDE              xcall _halSpiStrobe
 0584           ;               }
 0584 04C0              xjmp L119
 0586           L118:
 0586           ; 		else if(flag==0x02)
 0586 4230              cpi R20,2
 0588 11F4              brne L120
 058A           ;               {
 058A           ;                       halSpiStrobe(CCxxx0_SRX); 
 058A 04E3              ldi R16,52
 058C 16DE              xcall _halSpiStrobe
 058E           ;               }               
 058E           L120:
 058E           L119:
 058E           L117:
 058E           ; 		return 1;
 058E 01E0              ldi R16,1
 0590           L115:
 0590 0E940000          xcall pop_gset1
 0594                   .dbline 0 ; func end
 0594 0895              ret
 0596           ;           size -> R22
 0596           ;          txPtr -> R20,R21
                        .even
 0596           _CC1100_sendRFburst::
 0596 0E940000          xcall push_gset2
 059A 622F              mov R22,R18
 059C A801              movw R20,R16
 059E           ;       }
 059E           ;       
 059E           ;       //extern led1On();
 059E           ;       //连续发
 059E           ;       uint8_t CC1100_sendRFburst(uint8_t *txPtr,uint8_t size)
 059E           ;       {
 059E           ;               //led1On();
 059E           ;               CC1100_setInterrupt(0x00); //关中断
 059E 0027              clr R16
 05A0 D6DF              xcall _CC1100_setInterrupt
 05A2           ;               halSpiStrobe(CCxxx0_SIDLE);
 05A2 06E3              ldi R16,54
 05A4 0ADE              xcall _halSpiStrobe
 05A6           ;               halRfSendPacket(txPtr, size);
 05A6 262F              mov R18,R22
 05A8 8A01              movw R16,R20
 05AA 6BDE              xcall _halRfSendPacket
 05AC           ;               //Dly1mS(100);
 05AC           ;               if(SEND_DONE==0x01) //表明发送完成
 05AC 80910800          lds R24,_SEND_DONE
 05B0 8130              cpi R24,1
 05B2 49F4              brne L123
 05B4           ;               {
 05B4           ;                       SEND_DONE=0x00;
 05B4 2224              clr R2
 05B6 20920800          sts _SEND_DONE,R2
 05BA           ;                       //led2On();
 05BA           ;                       CC1100_sendDone(1);
 05BA 01E0              ldi R16,1
 05BC 10E0              ldi R17,0
 05BE 0E940000          xcall _CC1100_sendDone
 05C2           ;                       CC1100_setInterrupt(0x01); //开中断
 05C2 01E0              ldi R16,1
 05C4 C4DF              xcall _CC1100_setInterrupt
 05C6           ;               }
 05C6           L123:
 05C6           ; 		return 1;
 05C6 01E0              ldi R16,1
 05C8           L122:
 05C8 0E940000          xcall pop_gset2
 05CC                   .dbline 0 ; func end
 05CC 0895              ret
 05CE           ;      channr_NO -> R20
                        .even
 05CE           _CC1100_change_channr::
 05CE 0E940000          xcall push_gset1
 05D2 402F              mov R20,R16
 05D4           ;       }
 05D4           ; /*
 05D4           ;       uint8_t CC1100_sendDone()
 05D4           ;       {
 05D4           ;               return success;
 05D4           ;       }
 05D4           ;       uint8_t CC1100_receive(uint8_t *msg)
 05D4           ;       {
 05D4           ;               return msg;
 05D4           ;       }
 05D4           ; */
 05D4           ; //更改通道号
 05D4           ; void CC1100_change_channr(unsigned char channr_NO)
 05D4           ; {
 05D4           ;       halSpiWriteReg(CCxxx0_CHANNR,channr_NO );
 05D4 242F              mov R18,R20
 05D6 0AE0              ldi R16,10
 05D8 DBDD              xcall _halSpiWriteReg
 05DA           L125:
 05DA 0E940000          xcall pop_gset1
 05DE                   .dbline 0 ; func end
 05DE 0895              ret
 05E0           ;              n -> R20,R21
 05E0           ;              m -> R22,R23
                        .even
 05E0           _CC1100_wakeup::
 05E0 0E940000          xcall push_gset2
 05E4           ; }
 05E4           ; 
 05E4           ; uint8_t CC1100_wakeup()
 05E4           ; {
 05E4           ;       uint16_t n,m;
 05E4           ;       SET_CSN();
 05E4 25DD              xcall _SET_CSN
 05E6 4427              clr R20
 05E8 5527              clr R21
 05EA 02C0              xjmp L130
 05EC           L127:
 05EC           L128:
 05EC 4F5F              subi R20,255  ; offset = 1
 05EE 5F4F              sbci R21,255
 05F0           L130:
 05F0           ; 	for(n=0;n<1000;n++);
 05F0 483E              cpi R20,232
 05F2 E3E0              ldi R30,3
 05F4 5E07              cpc R21,R30
 05F6 D0F3              brlo L127
 05F8           ;       CLEAR_CSN();
 05F8 1DDD              xcall _CLEAR_CSN
 05FA           ;       for(n=0;n<1000;n++)
 05FA 4427              clr R20
 05FC 5527              clr R21
 05FE 0BC0              xjmp L134
 0600           L131:
 0600 6627              clr R22
 0602 7727              clr R23
 0604 02C0              xjmp L138
 0606           L135:
 0606           L136:
 0606 6F5F              subi R22,255  ; offset = 1
 0608 7F4F              sbci R23,255
 060A           L138:
 060A 683E              cpi R22,232
 060C E3E0              ldi R30,3
 060E 7E07              cpc R23,R30
 0610 D0F3              brlo L135
 0612           L132:
 0612 4F5F              subi R20,255  ; offset = 1
 0614 5F4F              sbci R21,255
 0616           L134:
 0616 483E              cpi R20,232
 0618 E3E0              ldi R30,3
 061A 5E07              cpc R21,R30
 061C 88F3              brlo L131
 061E           ;       for(m=0;m<1000;m++);
 061E           ;       SET_CSN();
 061E 08DD              xcall _SET_CSN
 0620           ;       return 1;
 0620 01E0              ldi R16,1
 0622           L126:
 0622 0E940000          xcall pop_gset2
 0626                   .dbline 0 ; func end
 0626 0895              ret
                        .even
 0628           _CC1100_sleep::
 0628           ; }
 0628           ; uint8_t CC1100_sleep()
 0628           ; {
 0628           ; 	halSpiStrobe(CCxxx0_SIDLE);
 0628 06E3              ldi R16,54
 062A C7DD              xcall _halSpiStrobe
 062C           ;       CC1100_setStrobe(0x39);
 062C 09E3              ldi R16,57
 062E 57DF              xcall _CC1100_setStrobe
 0630           ;       PowerEnable();
 0630 0E940000          xcall _PowerEnable
 0634           ;       return 1;
 0634 01E0              ldi R16,1
 0636           L139:
 0636                   .dbline 0 ; func end
 0636 0895              ret
                        .area bss(ram, con, rel)
 0000           _rd_reg::
 0000                   .blkb 1
 0001           _rxBuffer::
 0001                   .blkb 32
                        .area func_lit
 0000 0000      PL_CC1100_receive:      .word `_CC1100_receive

⌨️ 快捷键说明

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