📄 main.lis
字号:
.module main.c
.area data(ram, con, rel)
0000 _serial_num::
0000 .blkb 2
.area idata
0000 0000 .word 0
.area data(ram, con, rel)
0002 .dbfile E:\无线传感器网络资料\cc2420驱动\测试1\RX\main.c
0002 .dbsym e serial_num _serial_num i
0002 _PAN_id::
0002 .blkb 2
.area idata
0002 2345 .byte 35,'E
.area data(ram, con, rel)
0004 .dbfile E:\无线传感器网络资料\cc2420驱动\测试1\RX\main.c
0004 .dbsym e PAN_id _PAN_id A[2:2]c
0004 _short_addr::
0004 .blkb 2
.area idata
0004 1573 .byte 21,'s
.area data(ram, con, rel)
0006 .dbfile E:\无线传感器网络资料\cc2420驱动\测试1\RX\main.c
0006 .dbsym e short_addr _short_addr A[2:2]c
.area text(rom, con, rel)
0000 .dbfile E:\无线传感器网络资料\cc2420驱动\测试1\RX\main.c
0000 .dbfunc e main _main fV
0000 ; dL -> y+5
0000 ; dH -> y+4
0000 ; i -> R20
.even
0000 _main::
0000 2697 sbiw R28,6
0002 .dbline -1
0002 .dbline 23
0002 ; /***************************************
0002 ; *2008,浙江工业大学信息与控制研究所
0002 ; *All rights reserved
0002 ; *
0002 ; *文件名称:main.c
0002 ; *摘 要:无线接收发送测试程序(接收端)
0002 ; *
0002 ; *当前版本:1.0
0002 ; *作 者:董齐芬
0002 ; *完成日期:2008.8.20
0002 ; ****************************************/
0002 ;
0002 ; #include "cc2420.h"
0002 ; #include "spi.h"
0002 ;
0002 ; unsigned char Data_RXFIFO[TX_length]; //从RXFIFO中读入的数据,包括帧长度,MAC头,MAC有效负载等部分
0002 ; unsigned int serial_num=0; //数据序号
0002 ; unsigned char numbers[2048]; //存放接收到的数据序列号
0002 ; unsigned char PAN_id[2]={0x23,0x45}; //
0002 ; unsigned char short_addr[2]={0x15,0x73};
0002 ;
0002 ; void main(void)
0002 ; {
0002 .dbline 27
0002 ; unsigned char i;
0002 ; unsigned char dH[1],dL[1];
0002 ;
0002 ; init_spi();
0002 0E940000 xcall _init_spi
0006 .dbline 29
0006 ;
0006 ; PORTB |=(1<<CSn); //CSN引脚置位,停止SPI操作,
0006 C09A sbi 0x18,0
0008 .dbline 30
0008 ; PORTB |=1<<SCK; // Spi clock line init high
0008 C19A sbi 0x18,1
000A .dbline 31
000A ; PORTE |=1<<RST; //注意该引脚低电平时,cc2420处于复位状态
000A 1A9A sbi 0x3,2
000C .dbline 33
000C ;
000C ; Set_Configure(); //初始化设置配置字
000C 0E940000 xcall _Set_Configure
0010 .dbline 34
0010 ; PwDown_Idle(); //从掉电模式转换到空闲模式
0010 0E940000 xcall _PwDown_Idle
0014 .dbline 36
0014 ;
0014 ; Write_RAM(0x6a,0x02,2,short_addr);
0014 80E0 ldi R24,<_short_addr
0016 90E0 ldi R25,>_short_addr
0018 9B83 std y+3,R25
001A 8A83 std y+2,R24
001C 82E0 ldi R24,2
001E 8883 std y+0,R24
0020 22E0 ldi R18,2
0022 0AE6 ldi R16,106
0024 0E940000 xcall _Write_RAM
0028 .dbline 37
0028 ; Write_RAM(0x68,0x02,2,PAN_id); //向RAM中写入地址,用于地址识别
0028 80E0 ldi R24,<_PAN_id
002A 90E0 ldi R25,>_PAN_id
002C 9B83 std y+3,R25
002E 8A83 std y+2,R24
0030 82E0 ldi R24,2
0032 8883 std y+0,R24
0034 22E0 ldi R18,2
0036 08E6 ldi R16,104
0038 0E940000 xcall _Write_RAM
003C .dbline 39
003C ;
003C ; Idle_Rx(); //进入接收模式
003C 0E940000 xcall _Idle_Rx
0040 .dbline 41
0040 ;
0040 ; i=0;
0040 4427 clr R20
0042 28C0 xjmp L3
0044 L2:
0044 .dbline 43
0044 ; while(1)
0044 ; {
0044 .dbline 44
0044 ; if((PINE&(1<<FIFOP))!=0) //检测到数据
0044 0E9B sbis 0x1,6
0046 26C0 rjmp L5
0048 .dbline 45
0048 ; {
0048 .dbline 46
0048 ; Read_RXFIFO(TX_length,Data_RXFIFO); //因为设置了自动CRC校验,RXFIFO中包含两字节的RSSI,CRC结果等
0048 20E0 ldi R18,<_Data_RXFIFO
004A 30E0 ldi R19,>_Data_RXFIFO
004C 00E7 ldi R16,112
004E 0E940000 xcall _Read_RXFIFO
0052 .dbline 47
0052 ; Write_Command(SFLUSHRX); //清除RXFIFO,否则会一直请求微处理器读数据
0052 08E0 ldi R16,8
0054 0E940000 xcall _Write_Command
0058 .dbline 48
0058 ; numbers[serial_num]=Data_RXFIFO[3];
0058 80E0 ldi R24,<_numbers
005A 90E0 ldi R25,>_numbers
005C E0910000 lds R30,_serial_num
0060 F0910100 lds R31,_serial_num+1
0064 E80F add R30,R24
0066 F91F adc R31,R25
0068 20900308 lds R2,_Data_RXFIFO+3
006C 2082 std z+0,R2
006E .dbline 49
006E ; serial_num++;
006E 80910000 lds R24,_serial_num
0072 90910100 lds R25,_serial_num+1
0076 0196 adiw R24,1
0078 90930100 sts _serial_num+1,R25
007C 80930000 sts _serial_num,R24
0080 .dbline 50
0080 ; if(serial_num==2047)
0080 8F3F cpi R24,255
0082 E7E0 ldi R30,7
0084 9E07 cpc R25,R30
0086 31F4 brne L8
0088 .dbline 51
0088 ; {
0088 .dbline 52
0088 ; serial_num=0;
0088 2224 clr R2
008A 3324 clr R3
008C 30920100 sts _serial_num+1,R3
0090 20920000 sts _serial_num,R2
0094 .dbline 53
0094 ; }
0094 L8:
0094 .dbline 54
0094 ; }
0094 L5:
0094 .dbline 55
0094 L3:
0094 .dbline 42
0094 D7CF xjmp L2
0096 X0:
0096 .dbline -2
0096 L1:
0096 2696 adiw R28,6
0098 .dbline 0 ; func end
0098 0895 ret
009A .dbsym l dL 5 A[1:1]c
009A .dbsym l dH 4 A[1:1]c
009A .dbsym r i 20 c
009A .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\无线传感器网络资料\cc2420驱动\测试1\RX\main.c
0000 _numbers::
0000 .blkb 2048
0800 .dbsym e numbers _numbers A[2048:2048]c
0800 _Data_RXFIFO::
0800 .blkb 112
0870 .dbsym e Data_RXFIFO _Data_RXFIFO A[112:112]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -