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