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

📄 cc2420.lis

📁 该程序通过调试
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 02A2           ; ********************************************/
 02A2           ; void AllStates_PwDown(void)   
 02A2           ; {
 02A2                   .dbline 320
 02A2           ;   Write_Command(SXOSCOFF);
 02A2 07E0              ldi R16,7
 02A4 ADDE              xcall _Write_Command
 02A6                   .dbline -2
 02A6           L33:
 02A6                   .dbline 0 ; func end
 02A6 0895              ret
 02A8                   .dbend
 02A8                   .dbfunc e PwDown_Idle _PwDown_Idle fV
 02A8           ;         statue -> R20
                        .even
 02A8           _PwDown_Idle::
 02A8 0E940000          xcall push_gset1
 02AC                   .dbline -1
 02AC                   .dbline 330
 02AC           ; }
 02AC           ; 
 02AC           ; /*******************************************
 02AC           ; *函数功能:从掉电模式转换到空闲模式 
 02AC           ; *输入参数:无
 02AC           ; *输出参数:无
 02AC           ; *返 回 值:无
 02AC           ; ********************************************/
 02AC           ; void PwDown_Idle(void)
 02AC           ; {
 02AC                   .dbline 332
 02AC           ;   unsigned char statue;
 02AC           ;   Write_Command(SXOSCON);
 02AC 01E0              ldi R16,1
 02AE A8DE              xcall _Write_Command
 02B0 05C0              xjmp L36
 02B2           L35:
 02B2                   .dbline 335
 02B2           ;   
 02B2           ;   while(1)              //等待晶体振荡器稳定运行
 02B2           ;   {
 02B2                   .dbline 336
 02B2           ;     statue=Read_Status();
 02B2 B5DE              xcall _Read_Status
 02B4 402F              mov R20,R16
 02B6                   .dbline 337
 02B6           ;     if((statue&(1<<XOSC16M_STABLE))!=0)
 02B6 06FF              sbrs R16,6
 02B8 01C0              rjmp L38
 02BA                   .dbline 338
 02BA           ;       {
 02BA                   .dbline 339
 02BA           ;         break;
 02BA 01C0              xjmp L37
 02BC           L38:
 02BC                   .dbline 341
 02BC           L36:
 02BC                   .dbline 334
 02BC FACF              xjmp L35
 02BE           L37:
 02BE                   .dbline -2
 02BE           L34:
 02BE 0E940000          xcall pop_gset1
 02C2                   .dbline 0 ; func end
 02C2 0895              ret
 02C4                   .dbsym r statue 20 c
 02C4                   .dbend
 02C4                   .dbfunc e AllStates_Idle _AllStates_Idle fV
                        .even
 02C4           _AllStates_Idle::
 02C4                   .dbline -1
 02C4                   .dbline 351
 02C4           ;       }
 02C4           ;   }
 02C4           ; } 
 02C4           ; 
 02C4           ; /*******************************************
 02C4           ; *函数功能:从其他任何模式转换到空闲模式 
 02C4           ; *输入参数:无
 02C4           ; *输出参数:无
 02C4           ; *返 回 值:无
 02C4           ; ********************************************/
 02C4           ; void AllStates_Idle(void)   
 02C4           ; {
 02C4                   .dbline 352
 02C4           ;   Write_Command(SRFOFF);
 02C4 06E0              ldi R16,6
 02C6 9CDE              xcall _Write_Command
 02C8                   .dbline -2
 02C8           L40:
 02C8                   .dbline 0 ; func end
 02C8 0895              ret
 02CA                   .dbend
 02CA                   .dbfunc e Idle_Tx _Idle_Tx fV
                        .even
 02CA           _Idle_Tx::
 02CA                   .dbline -1
 02CA                   .dbline 362
 02CA           ; }   
 02CA           ; 
 02CA           ; /*******************************************
 02CA           ; *函数功能:从空闲模式启动发送 
 02CA           ; *输入参数:无
 02CA           ; *输出参数:无
 02CA           ; *返 回 值:无
 02CA           ; ********************************************/
 02CA           ; void Idle_Tx(void)  
 02CA           ; {
 02CA                   .dbline 363
 02CA           ;   Write_Command(STXON);
 02CA 04E0              ldi R16,4
 02CC 99DE              xcall _Write_Command
 02CE                   .dbline -2
 02CE           L41:
 02CE                   .dbline 0 ; func end
 02CE 0895              ret
 02D0                   .dbend
 02D0                   .dbfunc e Rx_Tx _Rx_Tx fV
                        .even
 02D0           _Rx_Tx::
 02D0                   .dbline -1
 02D0                   .dbline 373
 02D0           ; }    
 02D0           ; 
 02D0           ; /*******************************************
 02D0           ; *函数功能:从接收状态转换到发送模式
 02D0           ; *输入参数:无
 02D0           ; *输出参数:无
 02D0           ; *返 回 值:无
 02D0           ; ********************************************/
 02D0           ; void Rx_Tx(void)                     
 02D0           ; {
 02D0 05C0              xjmp L44
 02D2           L43:
 02D2                   .dbline 375
 02D2           ;   while(1)
 02D2           ;   {
 02D2                   .dbline 376
 02D2           ;     if((PINA&(1<<CCA))!=0)      //信道空闲
 02D2 C99B              sbis 0x19,1
 02D4 03C0              rjmp L46
 02D6                   .dbline 377
 02D6           ;     {
 02D6                   .dbline 378
 02D6           ;     Write_Command(STXONCCA);  
 02D6 05E0              ldi R16,5
 02D8 93DE              xcall _Write_Command
 02DA                   .dbline 379
 02DA           ;       break;
 02DA 01C0              xjmp L45
 02DC           L46:
 02DC                   .dbline 381
 02DC           L44:
 02DC                   .dbline 374
 02DC FACF              xjmp L43
 02DE           L45:
 02DE                   .dbline -2
 02DE           L42:
 02DE                   .dbline 0 ; func end
 02DE 0895              ret
 02E0                   .dbend
 02E0                   .dbfunc e Idle_Rx _Idle_Rx fV
                        .even
 02E0           _Idle_Rx::
 02E0                   .dbline -1
 02E0                   .dbline 391
 02E0           ;     }
 02E0           ;   }
 02E0           ; } 
 02E0           ; 
 02E0           ; /*******************************************
 02E0           ; *函数功能:从空闲模式启动接收模式
 02E0           ; *输入参数:无
 02E0           ; *输出参数:无
 02E0           ; *返 回 值:无
 02E0           ; ********************************************/
 02E0           ; void Idle_Rx(void)
 02E0           ; {
 02E0                   .dbline 392
 02E0           ;   Write_Command(SRXON);
 02E0 03E0              ldi R16,3
 02E2 8EDE              xcall _Write_Command
 02E4                   .dbline -2
 02E4           L48:
 02E4                   .dbline 0 ; func end
 02E4 0895              ret
 02E6                   .dbend
 02E6                   .dbfunc e Set_Configure _Set_Configure fV
 02E6           ; RegisterValueL -> R22
 02E6           ; RegisterValueH -> R20
                        .even
 02E6           _Set_Configure::
 02E6 0E940000          xcall push_gset2
 02EA 2197              sbiw R28,1
 02EC                   .dbline -1
 02EC                   .dbline 402
 02EC           ; }     
 02EC           ; 
 02EC           ; /*******************************************
 02EC           ; *函数功能:设置配置字(用于初始化)
 02EC           ; *输入参数:无
 02EC           ; *输出参数:无
 02EC           ; *返 回 值:无
 02EC           ; ********************************************/
 02EC           ; void Set_Configure(void)       
 02EC           ; {
 02EC                   .dbline 404
 02EC           ;   unsigned char RegisterValueH,RegisterValueL;
 02EC           ;   PowerOff();   //???????????????????????????????
 02EC C4DF              xcall _PowerOff
 02EE                   .dbline 405
 02EE           ;   PwOff_PwDown();  //在power down模式下设置配置寄存器
 02EE C5DF              xcall _PwOff_PwDown
 02F0                   .dbline 407
 02F0           ;   
 02F0           ;   enable_spi();     //使能SPI口 
 02F0 0E940000          xcall _enable_spi
 02F4                   .dbline 409
 02F4           ;   
 02F4           ;   RegisterValueH=0X0A;
 02F4 4AE0              ldi R20,10
 02F6                   .dbline 410
 02F6           ;   RegisterValueL=0XE2;  //地址认证使能,自动应答不使能
 02F6 62EE              ldi R22,226
 02F8                   .dbline 411
 02F8           ;   Write_ConfigureWord(MDMCTRL0,RegisterValueH,RegisterValueL); 
 02F8 6883              std y+0,R22
 02FA 242F              mov R18,R20
 02FC 01E1              ldi R16,17
 02FE 97DE              xcall _Write_ConfigureWord
 0300                   .dbline 413
 0300           ;   
 0300           ;   RegisterValueH=0X05;
 0300 45E0              ldi R20,5
 0302                   .dbline 414
 0302           ;   RegisterValueL=0X00; 
 0302 6627              clr R22
 0304                   .dbline 415
 0304           ;   Write_ConfigureWord(MDMCTRL1,RegisterValueH,RegisterValueL); 
 0304 6883              std y+0,R22
 0306 242F              mov R18,R20
 0308 02E1              ldi R16,18
 030A 91DE              xcall _Write_ConfigureWord
 030C                   .dbline 421
 030C           ;   
 030C           ;  // RegisterValueH=-50;
 030C           ;  // RegisterValueL=0X00; 
 030C           ;  // Write_ConfigureWord(RSSI,RegisterValueH,RegisterValueL); //???????????????????????调试时修改
 030C           ;   
 030C           ;   RegisterValueH=0x41;
 030C 41E4              ldi R20,65
 030E                   .dbline 422
 030E           ;   RegisterValueL=0X92;    //2.45GHz
 030E 62E9              ldi R22,146
 0310                   .dbline 423
 0310           ;   Write_ConfigureWord(FSCTRL,RegisterValueH,RegisterValueL); 
 0310 6883              std y+0,R22
 0312 242F              mov R18,R20
 0314 08E1              ldi R16,24
 0316 8BDE              xcall _Write_ConfigureWord
 0318                   .dbline 425
 0318           ;   
 0318           ;   RegisterValueH=0x01;
 0318 41E0              ldi R20,1
 031A                   .dbline 426
 031A           ;   RegisterValueL=0Xe4;    //安全模式不使能
 031A 64EE              ldi R22,228
 031C                   .dbline 427
 031C           ;   Write_ConfigureWord(SECCTRL0,RegisterValueH,RegisterValueL); 
 031C 6883              std y+0,R22
 031E 242F              mov R18,R20
 0320 09E1              ldi R16,25
 0322 85DE              xcall _Write_ConfigureWord
 0324                   .dbline 433
 0324           ;   
 0324           ;   //RegisterValueH=128;
 0324           ;   //RegisterValueL=128; 
 0324           ;   //Write_ConfigureWord(SECCTRL1,RegisterValueH,RegisterValueL); //???????????????????????调试时修改
 0324           ;   
 0324           ;   RegisterValueH=0;
 0324 4427              clr R20
 0326                   .dbline 434
 0326           ;   RegisterValueL=TX_length;  //RXFIFO的极限值
 0326 60E7              ldi R22,112
 0328                   .dbline 435
 0328           ;   Write_ConfigureWord(IOCFG0,RegisterValueH,RegisterValueL); //???????????????????????调试时修改
 0328 6883              std y+0,R22
 032A 242F              mov R18,R20
 032C 0CE1              ldi R16,28
 032E 7FDE              xcall _Write_ConfigureWord
 0330                   .dbline 437
 0330           ;   
 0330           ;   disable_spi();      //禁止SPI口 
 0330 0E940000          xcall _disable_spi
 0334                   .dbline -2
 0334           L49:
 0334 2196              adiw R28,1
 0336 0E940000          xcall pop_gset2
 033A                   .dbline 0 ; func end
 033A 0895              ret
 033C                   .dbsym r RegisterValueL 22 c
 033C                   .dbsym r RegisterValueH 20 c
 033C                   .dbend

⌨️ 快捷键说明

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