www.pudn.com > M8_cc1100_receive.rar > main.lis


                        .module main.c 
                        .area data(ram, con, rel) 
 0000           _PaTabel:: 
 0000                   .blkb 2 
                        .area idata 
 0000 C0C0              .byte 192,192 
                        .area data(ram, con, rel) 
 0002                   .blkb 2 
                        .area idata 
 0002 C0C0              .byte 192,192 
                        .area data(ram, con, rel) 
 0004                   .blkb 2 
                        .area idata 
 0004 C0C0              .byte 192,192 
                        .area data(ram, con, rel) 
 0006                   .blkb 2 
                        .area idata 
 0006 C0C0              .byte 192,192 
                        .area data(ram, con, rel) 
 0008                   .dbfile E:\学习基地\IMPORT~1\CC1100-RF-Design\M8_RF_CC1100开发系统光盘\驱动程序\M8_cc1100_receive\main.c 
 0008                   .dbsym e PaTabel _PaTabel A[8:8]c 
                        .area text(rom, con, rel) 
 0000                   .dbfile E:\学习基地\IMPORT~1\CC1100-RF-Design\M8_RF_CC1100开发系统光盘\驱动程序\M8_cc1100_receive\main.c 
 0000                   .dbfunc e main _main fV 
                        .even 
 0000           _main:: 
 0000 2197              sbiw R28,1 
 0002                   .dbline -1 
 0002                   .dbline 50 
 0002           ; /*C************************************************************************** 
 0002           ; * NAME:         main.c 
 0002           ; *---------------------------------------------------------------------------- 
 0002           ; * Copyright (c) 2006 endylu 
 0002           ; *---------------------------------------------------------------------------- 
 0002           ; * RELEASE:      M8-cc1100 
 0002           ; * REVISION:     1.0      
 0002           ; *---------------------------------------------------------------------------- 
 0002           ; * PURPOSE: 
 0002           ; * This is the demonstration software for MAGE8L 
 0002           ; *****************************************************************************/ 
 0002           ;  
 0002           ; /*_____ I N C L U D E S ____________________________________________________*/ 
 0002           ;  
 0002           ; #include  
 0002           ; #include  
 0002           ; #include "main.h" 
 0002           ;  
 0002           ;  
 0002           ; /*_____ M A C R O S ________________________________________________________*/ 
 0002           ;  
 0002           ;  
 0002           ; /*_____ D E F I N I T I O N ________________________________________________*/ 
 0002           ;  
 0002           ; INT8U PaTabel[8] = {0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0}; 
 0002           ; INT8U arrRx[50]; 
 0002           ;  
 0002           ; INT8U length; 
 0002           ; INT8U flag_receive; 
 0002           ; /*_____ D E C L A R A T I O N ______________________________________________*/ 
 0002           ;  
 0002           ;  
 0002           ; /*F************************************************************************** 
 0002           ; * NAME: main 
 0002           ; *---------------------------------------------------------------------------- 
 0002           ; * PARAMS: 
 0002           ; * 
 0002           ; * return: 
 0002           ; *---------------------------------------------------------------------------- 
 0002           ; * PURPOSE:  
 0002           ; *   Main user routine  
 0002           ; *---------------------------------------------------------------------------- 
 0002           ; * EXAMPLE: 
 0002           ; *---------------------------------------------------------------------------- 
 0002           ; * NOTE: 
 0002           ; *---------------------------------------------------------------------------- 
 0002           ; * REQUIREMENTS: 
 0002           ; *****************************************************************************/ 
 0002           ; void main (void) 
 0002           ; {    
 0002                   .dbline 51 
 0002           ;     PORTD|=0X04;                  //GDO0上拉 
 0002 929A              sbi 0x12,2 
 0004                   .dbline 53 
 0004           ;        
 0004           ;     DDRB|=1<_PaTabel 
 0016 0EE3              ldi R16,62 
 0018 00D0              rcall _halSpiWriteBurstReg 
 001A                   .dbline 60 
 001A           ;       PORTB&=~(1< y+1 
 003C           ;              i -> R20 
                        .even 
 003C           _int0:: 
 003C 00D0              rcall push_lset 
 003E 00D0              rcall push_gset1 
 0040 2397              sbiw R28,3 
 0042                   .dbline -1 
 0042                   .dbline 91 
 0042           ; } 
 0042           ;  
 0042           ;  
 0042           ; //***************************************************************************************** 
 0042           ; //函数名: 
 0042           ; //输入: 
 0042           ; //输出: 
 0042           ; //功能描述:中断接收 
 0042           ; //***************************************************************************************** 
 0042           ; #pragma interrupt_handler int0:2 
 0042           ; void int0(void) 
 0042           ; {  
 0042                   .dbline 95 
 0042           ;   uint8 i; 
 0042           ;   uint8 status[2]; 
 0042           ;    
 0042           ;   flag_receive=RECEIVE_error; 
 0042 82E0              ldi R24,2 
 0044 80930000          sts _flag_receive,R24 
 0048                   .dbline 96 
 0048           ;   if(halSpiReadStatus(CCxxx0_RXBYTES) & BYTES_IN_RXFIFO)//如果接的字节数不为0 
 0048 0BE3              ldi R16,59 
 004A 00D0              rcall _halSpiReadStatus 
 004C 802F              mov R24,R16 
 004E 8F77              andi R24,127 
 0050 61F1              breq L7 
 0052                   .dbline 97 
 0052           ;       { 
 0052                   .dbline 98 
 0052           ;        length = halSpiReadReg(CCxxx0_RXFIFO);//读出第一个字节,此字节为该帧数据长度 
 0052 0FE3              ldi R16,63 
 0054 00D0              rcall _halSpiReadReg 
 0056 00930100          sts _length,R16 
 005A                   .dbline 99 
 005A           ;        halSpiReadBurstReg(CCxxx0_RXFIFO, arrRx, length); //读出所有接收到的数据 
 005A 202E              mov R2,R16 
 005C 2882              std y+0,R2 
 005E 20E0              ldi R18,<_arrRx 
 0060 30E0              ldi R19,>_arrRx 
 0062 0FE3              ldi R16,63 
 0064 00D0              rcall _halSpiReadBurstReg 
 0066                   .dbline 100 
 0066           ;      halSpiReadBurstReg(CCxxx0_RXFIFO, status, 2);    //读出CRC校验位 
 0066 82E0              ldi R24,2 
 0068 8883              std y+0,R24 
 006A 9E01              movw R18,R28 
 006C 2F5F              subi R18,255  ; offset = 1 
 006E 3F4F              sbci R19,255 
 0070 0FE3              ldi R16,63 
 0072 00D0              rcall _halSpiReadBurstReg 
 0074                   .dbline 102 
 0074           ;              
 0074           ;      if(status[1] & CRC_OK) 
 0074 2A80              ldd R2,y+2 
 0076 27FE              sbrs R2,7 
 0078 18C0              rjmp L9 
 007A                   .dbline 103 
 007A           ;        { 
 007A                   .dbline 104 
 007A           ;           flag_receive=RECEIVE_OK; 
 007A 81E0              ldi R24,1 
 007C 80930000          sts _flag_receive,R24 
 0080                   .dbline 106 
 0080           ;                
 0080           ;               PORTB|=1<_arrRx 
 008A E42F              mov R30,R20 
 008C FF27              clr R31 
 008E E80F              add R30,R24 
 0090 F91F              adc R31,R25 
 0092 0081              ldd R16,z+0 
 0094 1127              clr R17 
 0096 00D0              rcall _putchar 
 0098                   .dbline 110 
 0098           L13: 
 0098                   .dbline 107 
 0098 4395              inc R20 
 009A           L15: 
 009A                   .dbline 107 
 009A 20900100          lds R2,_length 
 009E 4215              cp R20,R2 
 00A0 90F3              brlo L12 
 00A2                   .dbline 111 
 00A2           ;                    { 
 00A2           ;                        putchar(arrRx[i]); 
 00A2           ;                        } 
 00A2           ;               Delay_ms(100); 
 00A2 04E6              ldi R16,100 
 00A4 10E0              ldi R17,0 
 00A6 12D0              rcall _Delay_ms 
 00A8                   .dbline 112 
 00A8           ;           PORTB&=~(1< R16,R17 
                        .even 
 00BA           _Delay_us:: 
 00BA                   .dbline -1 
 00BA                   .dbline 120 
 00BA           L17: 
 00BA                   .dbline 120 
 00BA           L18: 
 00BA                   .dbline 120 
 00BA           ; } 
 00BA           ;  
 00BA           ; void Delay_us(uint16 time) //set time 120 to 100us,set 1 to 3.5us; 
 00BA           ;       {while (time--); 
 00BA 1801              movw R2,R16 
 00BC 0150              subi R16,1 
 00BE 1040              sbci R17,0 
 00C0 2220              tst R2 
 00C2 D9F7              brne L17 
 00C4 3320              tst R3 
 00C6 C9F7              brne L17 
 00C8           X1: 
 00C8                   .dbline 121 
 00C8           ;        _WDR(); 
 00C8 A895              wdr 
 00CA                   .dbline -2 
 00CA           L16: 
 00CA                   .dbline 0 ; func end 
 00CA 0895              ret 
 00CC                   .dbsym r time 16 i 
 00CC                   .dbend 
 00CC                   .dbfunc e Delay_ms _Delay_ms fV 
 00CC           ;           time -> R20,R21 
                        .even 
 00CC           _Delay_ms:: 
 00CC 00D0              rcall push_gset1 
 00CE A801              movw R20,R16 
 00D0                   .dbline -1 
 00D0                   .dbline 124 
 00D0           ;       } 
 00D0           ; void Delay_ms(uint16 time)  
 00D0           ;       {while (time--) 
 00D0 03C0              rjmp L22 
 00D2           L21: 
 00D2                   .dbline 125 
 00D2 00EB              ldi R16,1200 
 00D4 14E0              ldi R17,4 
 00D6 F1DF              rcall _Delay_us 
 00D8           L22: 
 00D8                   .dbline 124 
 00D8 1A01              movw R2,R20 
 00DA 4150              subi R20,1 
 00DC 5040              sbci R21,0 
 00DE 2220              tst R2 
 00E0 C1F7              brne L21 
 00E2 3320              tst R3 
 00E4 B1F7              brne L21 
 00E6           X2: 
 00E6                   .dbline -2 
 00E6           L20: 
 00E6 00D0              rcall pop_gset1 
 00E8                   .dbline 0 ; func end 
 00E8 0895              ret 
 00EA                   .dbsym r time 20 i 
 00EA                   .dbend 
                        .area bss(ram, con, rel) 
 0000                   .dbfile E:\学习基地\IMPORT~1\CC1100-RF-Design\M8_RF_CC1100开发系统光盘\驱动程序\M8_cc1100_receive\main.c 
 0000           _flag_receive:: 
 0000                   .blkb 1 
 0001                   .dbsym e flag_receive _flag_receive c 
 0001           _length:: 
 0001                   .blkb 1 
 0002                   .dbsym e length _length c 
 0002           _arrRx:: 
 0002                   .blkb 50 
 0034                   .dbsym e arrRx _arrRx A[50:50]c