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

📄 main.lis

📁 cc1100和atmage8的程序以及相关电路图 用于无线传输数据
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 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<<LED2;
 0080 C19A              sbi 0x18,1
 0082                   .dbline 107
 0082           ;               for(i=2;i<length;i++)
 0082 42E0              ldi R20,2
 0084 0AC0              rjmp L15
 0086           L12:
 0086                   .dbline 108
 0086                   .dbline 109
 0086 80E0              ldi R24,<_arrRx
 0088 90E0              ldi R25,>_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<<LED2);
 00A8 C198              cbi 0x18,1
 00AA                   .dbline 113
 00AA           ;        }     
 00AA           L9:
 00AA                   .dbline 114
 00AA           ;     }
 00AA           L7:
 00AA                   .dbline 115
 00AA           ;   halSpiStrobe(CCxxx0_SFRX);          //清洗接收缓冲区
 00AA 0AE3              ldi R16,58
 00AC 00D0              rcall _halSpiStrobe
 00AE                   .dbline 116
 00AE           ;   halSpiStrobe(CCxxx0_SRX);
 00AE 04E3              ldi R16,52
 00B0 00D0              rcall _halSpiStrobe
 00B2                   .dbline -2
 00B2           L6:
 00B2 2396              adiw R28,3
 00B4 00D0              rcall pop_gset1
 00B6 00D0              rcall pop_lset
 00B8                   .dbline 0 ; func end
 00B8 1895              reti
 00BA                   .dbsym l status 1 A[2:2]c
 00BA                   .dbsym r i 20 c
 00BA                   .dbend
 00BA                   .dbfunc e Delay_us _Delay_us fV
 00BA           ;           time -> 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

⌨️ 快捷键说明

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