📄 main.lis
字号:
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 + -