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

📄 cc1000avr.lis

📁 CC1000通信
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 02B6           ;      RXCurrent -> R22
                        .even
 02B6           _WakeUpCC1000ToRX::
 02B6 0E940000          xcall push_gset2
 02BA 422F              mov R20,R18
 02BC 602F              mov R22,R16
 02BE                   .dbline -1
 02BE                   .dbline 528
 02BE           ; }
 02BE           ; 
 02BE           ; /****************************************************************************/
 02BE           ; /*  This routine wakes the CC1000 up from PD mode to RX mode, call          */
 02BE           ; /*  SetupCC1000RX after this routine is finished.                           */
 02BE           ; /****************************************************************************/
 02BE           ; 
 02BE           ; void WakeUpCC1000ToRX(char RXCurrent,char RXPLL)
 02BE           ; {
 02BE                   .dbline 532
 02BE           ;   int i;
 02BE           ;   
 02BE           ;   
 02BE           ;   WriteToCC1000Register(CC1000_MAIN,0x3B);  // Turn on xtal oscillator core
 02BE 2BE3              ldi R18,59
 02C0 0027              clr R16
 02C2 ECDE              xcall _WriteToCC1000Register
 02C4                   .dbline 533
 02C4           ;   WriteToCC1000Register(CC1000_CURRENT,RXCurrent); // Program VCO current for RX 
 02C4 262F              mov R18,R22
 02C6 09E0              ldi R16,9
 02C8 E9DE              xcall _WriteToCC1000Register
 02CA                   .dbline 534
 02CA           ;   WriteToCC1000Register(CC1000_PLL,RXPLL); // Use RX refdiv setting
 02CA 242F              mov R18,R20
 02CC 0CE0              ldi R16,12
 02CE E6DE              xcall _WriteToCC1000Register
 02D0                   .dbline 538
 02D0           ;   
 02D0           ;   // Insert wait routine here, must wait for xtal oscillator to stabilise, 
 02D0           ;   // typically takes 2-5ms.
 02D0           ;   delaycc(38);   //35 is 2ms
 02D0 06E2              ldi R16,38
 02D2 10E0              ldi R17,0
 02D4 95DE              xcall _delaycc
 02D6                   .dbline 540
 02D6           ;   
 02D6           ;   WriteToCC1000Register(CC1000_MAIN,0x39);  // Turn on bias generator
 02D6 29E3              ldi R18,57
 02D8 0027              clr R16
 02DA E0DE              xcall _WriteToCC1000Register
 02DC                   .dbline 542
 02DC           ;   // Wait for 250us, insert wait loop here
 02DC           ;   delaycc(12);
 02DC 0CE0              ldi R16,12
 02DE 10E0              ldi R17,0
 02E0 8FDE              xcall _delaycc
 02E2                   .dbline 543
 02E2           ;   WriteToCC1000Register(CC1000_MAIN,0x31);  // Turn on frequency synthesiser
 02E2 21E3              ldi R18,49
 02E4 0027              clr R16
 02E6 DADE              xcall _WriteToCC1000Register
 02E8                   .dbline -2
 02E8           L77:
 02E8 0E940000          xcall pop_gset2
 02EC                   .dbline 0 ; func end
 02EC 0895              ret
 02EE                   .dbsym l i 1 I
 02EE                   .dbsym r RXPLL 20 c
 02EE                   .dbsym r RXCurrent 22 c
 02EE                   .dbend
 02EE                   .dbfunc e WakeUpCC1000ToTX _WakeUpCC1000ToTX fV
 02EE           ;              i -> <dead>
 02EE           ;          TXPLL -> R20
 02EE           ;      TXCurrent -> R22
                        .even
 02EE           _WakeUpCC1000ToTX::
 02EE 0E940000          xcall push_gset2
 02F2 422F              mov R20,R18
 02F4 602F              mov R22,R16
 02F6                   .dbline -1
 02F6                   .dbline 552
 02F6           ; }
 02F6           ; 
 02F6           ; /****************************************************************************/
 02F6           ; /*  This routine wakes the CC1000 up from PD mode to TX mode, call          */
 02F6           ; /*  SetupCC1000TX after this routine is finished.                           */
 02F6           ; /****************************************************************************/
 02F6           ; 
 02F6           ; void WakeUpCC1000ToTX(char TXCurrent,char TXPLL)
 02F6           ; {
 02F6                   .dbline 556
 02F6           ;   int i;
 02F6           ;   
 02F6           ;   
 02F6           ;   WriteToCC1000Register(CC1000_MAIN,0xFB);  // Turn on xtal oscillator core
 02F6 2BEF              ldi R18,251
 02F8 0027              clr R16
 02FA D0DE              xcall _WriteToCC1000Register
 02FC                   .dbline 557
 02FC           ;   WriteToCC1000Register(CC1000_CURRENT,TXCurrent); // Program VCO current for TX
 02FC 262F              mov R18,R22
 02FE 09E0              ldi R16,9
 0300 CDDE              xcall _WriteToCC1000Register
 0302                   .dbline 558
 0302           ;   WriteToCC1000Register(CC1000_PLL,TXPLL); // Use TX refdiv setting
 0302 242F              mov R18,R20
 0304 0CE0              ldi R16,12
 0306 CADE              xcall _WriteToCC1000Register
 0308                   .dbline 562
 0308           ;   
 0308           ;   // Insert wait routine here, must wait for xtal oscillator to stabilise, 
 0308           ;   // typically takes 2-5ms. 
 0308           ;   delaycc(38);   //35 is 2ms
 0308 06E2              ldi R16,38
 030A 10E0              ldi R17,0
 030C 79DE              xcall _delaycc
 030E                   .dbline 564
 030E           ;   
 030E           ;   WriteToCC1000Register(CC1000_MAIN,0xF9);  // Turn on bias generator
 030E 29EF              ldi R18,249
 0310 0027              clr R16
 0312 C4DE              xcall _WriteToCC1000Register
 0314                   .dbline 566
 0314           ;   // Wait for 250us, insert wait loop here
 0314           ;   delaycc(12);
 0314 0CE0              ldi R16,12
 0316 10E0              ldi R17,0
 0318 73DE              xcall _delaycc
 031A                   .dbline 567
 031A           ;   WriteToCC1000Register(CC1000_PA_POW,PA_VALUE); // Turn on PA
 031A 20EF              ldi R18,240
 031C 0BE0              ldi R16,11
 031E BEDE              xcall _WriteToCC1000Register
 0320                   .dbline 568
 0320           ;   WriteToCC1000Register(CC1000_MAIN,0xF1);  // Turn on frequency synthesiser
 0320 21EF              ldi R18,241
 0322 0027              clr R16
 0324 BBDE              xcall _WriteToCC1000Register
 0326                   .dbline -2
 0326           L78:
 0326 0E940000          xcall pop_gset2
 032A                   .dbline 0 ; func end
 032A 0895              ret
 032C                   .dbsym l i 1 I
 032C                   .dbsym r TXPLL 20 c
 032C                   .dbsym r TXCurrent 22 c
 032C                   .dbend
 032C                   .dbfunc e AverageManualLockCC1000 _AverageManualLockCC1000 fV
                        .even
 032C           _AverageManualLockCC1000::
 032C                   .dbline -1
 032C                   .dbline 576
 032C           ; }
 032C           ; 
 032C           ; /****************************************************************************/
 032C           ; /*  This routine locks the averaging filter of the CC1000                   */
 032C           ; /****************************************************************************/
 032C           ; 
 032C           ; void AverageManualLockCC1000(void)
 032C           ; {
 032C                   .dbline 577
 032C           ;   WriteToCC1000Register(CC1000_MODEM1,0x1D);//0x19
 032C 2DE1              ldi R18,29
 032E 00E1              ldi R16,16
 0330 B5DE              xcall _WriteToCC1000Register
 0332                   .dbline -2
 0332           L79:
 0332                   .dbline 0 ; func end
 0332 0895              ret
 0334                   .dbend
 0334                   .dbfunc e AverageFreeRunCC1000 _AverageFreeRunCC1000 fV
                        .even
 0334           _AverageFreeRunCC1000::
 0334                   .dbline -1
 0334                   .dbline 585
 0334           ; }
 0334           ; 
 0334           ; /****************************************************************************/
 0334           ; /*  This routine unlocks the averaging filter of the CC1000                 */
 0334           ; /****************************************************************************/
 0334           ; 
 0334           ; void AverageFreeRunCC1000(void)
 0334           ; {
 0334                   .dbline 586
 0334           ;   WriteToCC1000Register(CC1000_MODEM1,0x09);
 0334 29E0              ldi R18,9
 0336 00E1              ldi R16,16
 0338 B1DE              xcall _WriteToCC1000Register
 033A                   .dbline -2
 033A           L80:
 033A                   .dbline 0 ; func end
 033A 0895              ret
 033C                   .dbend
 033C                   .dbfunc e AverageAutoLockCC1000 _AverageAutoLockCC1000 fV
                        .even
 033C           _AverageAutoLockCC1000::
 033C                   .dbline -1
 033C                   .dbline 595
 033C           ; }
 033C           ; 
 033C           ; /****************************************************************************/
 033C           ; /*  This routine sets up the averaging filter of the CC1000 for automatic   */
 033C           ; /*  lock. This can be used in polled receivers.                             */
 033C           ; /****************************************************************************/
 033C           ; 
 033C           ; void AverageAutoLockCC1000(void)
 033C           ; {
 033C                   .dbline 596
 033C           ;   WriteToCC1000Register(CC1000_MODEM1,0x01);
 033C 21E0              ldi R18,1
 033E 00E1              ldi R16,16
 0340 ADDE              xcall _WriteToCC1000Register
 0342                   .dbline -2
 0342           L81:
 0342                   .dbline 0 ; func end
 0342 0895              ret
 0344                   .dbend
 0344                   .dbfunc e ReadCurrentCalibration _ReadCurrentCalibration fV
 0344           ;           val2 -> R20,R21
 0344           ;           val1 -> R22,R23
                        .even
 0344           _ReadCurrentCalibration::
 0344 0E940000          xcall push_gset2
 0348 A901              movw R20,R18
 034A B801              movw R22,R16
 034C                   .dbline -1
 034C                   .dbline 604
 034C           ; }
 034C           ; 
 034C           ; /****************************************************************************/
 034C           ; /*  This routine reads the current calibration values from the CC1000       */
 034C           ; /****************************************************************************/
 034C           ; 
 034C           ; void ReadCurrentCalibration(char *val1, char *val2)
 034C           ; {
 034C                   .dbline 605
 034C           ;   *val1=ReadFromCC1000Register(CC1000_TEST0);
 034C 06E4              ldi R16,70
 034E C9DE              xcall _ReadFromCC1000Register
 0350 FB01              movw R30,R22
 0352 0083              std z+0,R16
 0354                   .dbline 606
 0354           ;   *val2=ReadFromCC1000Register(CC1000_TEST2);
 0354 04E4              ldi R16,68
 0356 C5DE              xcall _ReadFromCC1000Register
 0358 FA01              movw R30,R20
 035A 0083              std z+0,R16
 035C                   .dbline -2
 035C           L82:
 035C 0E940000          xcall pop_gset2
 0360                   .dbline 0 ; func end
 0360 0895              ret
 0362                   .dbsym r val2 20 pc
 0362                   .dbsym r val1 22 pc
 0362                   .dbend
 0362                   .dbfunc e OverrideCurrentCalibration _OverrideCurrentCalibration fV
 0362           ;           val2 -> R20
 0362           ;           val1 -> R22
                        .even
 0362           _OverrideCurrentCalibration::
 0362 0E940000          xcall push_gset2
 0366 422F              mov R20,R18
 0368 602F              mov R22,R16
 036A                   .dbline -1
 036A                   .dbline 614
 036A           ; }
 036A           ; 
 036A           ; /****************************************************************************/
 036A           ; /*  This routine overrides the current calibration of the CC1000            */
 036A           ; /****************************************************************************/
 036A           ; 
 036A           ; void OverrideCurrentCalibration(char val1, char val2)
 036A           ; {
 036A                   .dbline 615
 036A           ;   WriteToCC1000Register(CC1000_TEST5,(val1&0x0F)|0x10);
 036A 262F              mov R18,R22
 036C 2F70              andi R18,15
 036E 2061              ori R18,16
 0370 01E4              ldi R16,65
 0372 94DE              xcall _WriteToCC1000Register
 0374                   .dbline 616
 0374           ;   WriteToCC1000Register(CC1000_TEST6,(val2&0x1F)|0x20);
 0374 242F              mov R18,R20
 0376 2F71              andi R18,31
 0378 2062              ori R18,32
 037A 00E4              ldi R16,64
 037C 8FDE              xcall _WriteToCC1000Register
 037E                   .dbline -2
 037E           L83:
 037E 0E940000          xcall pop_gset2
 0382                   .dbline 0 ; func end
 0382 0895              ret
 0384                   .dbsym r val2 20 c
 0384                   .dbsym r val1 22 c
 0384                   .dbend
 0384                   .dbfunc e StopOverridingCalibration _StopOverridingCalibration fV
                        .even
 0384           _StopOverridingCalibration::
 0384                   .dbline -1
 0384                   .dbline 624
 0384           ; }
 0384           ; 
 0384           ; /****************************************************************************/
 0384      

⌨️ 快捷键说明

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