📄 main.s
字号:
.module main.c
.area text(rom, con, rel)
.dbfile D:\WIRELE~1\CC1020~1\SoftWare\SoftWare\main.c
.dbfunc e main _main fV
; i -> R20
.even
_main::
.dbline -1
.dbline 18
; /****************************************************/
; /* Application note */
; /* Reference design : CC1100 RF Test Board */
; /* File: Main.c */
; /* Revision: 1.0 */
; /* Description: */
; /* Microcontroller:ATmega48/48V */
; /* Author: Zcg, Field Applications Engineer, SunRay*/
; /****************************************************/
; #include "iom88v.h"
; #include "macros.h"
; #include "main.h"
; #include "CC1100.h"
; #include "board.h"
; #include "simpleio.h"
;
; void main (void)
; {
.dbline 21
; INT8U i;
;
; InitSys(); //初始化变量、寄存器等
rcall _InitSys
rjmp L3
L2:
.dbline 24
;
; while (1)
; {
.dbline 25
; if ((RFSendFlg == TRUE) && (RFState == CC1100_RX_STATE))//串口接收到
lds R24,_RFSendFlg
cpi R24,1
brne L5
lds R2,_RFState
tst R2
brne L5
.dbline 26
; {
.dbline 27
; RFSendFlg = FALSE; //串口接收完一包数据,准备射频发送
clr R2
sts _RFSendFlg,R2
.dbline 28
; RF_SendPacket(UartReceive_Buf,RFSendCnt);
lds R18,_RFSendCnt
ldi R16,<_UartReceive_Buf
ldi R17,>_UartReceive_Buf
rcall _RF_SendPacket
.dbline 29
; RFSendCnt = 0;
clr R2
sts _RFSendCnt,R2
.dbline 30
; }
L5:
.dbline 32
;
; if ((RFReceiveFlg == TRUE) && ((UCSR0B & (BIT(UDRIE0))) == 0))
lds R24,_RFReceiveFlg
cpi R24,1
breq X1
rjmp L7
X1:
lds R2,193
sbrc R2,5
rjmp L7
.dbline 33
; {
.dbline 34
; RFReceiveFlg = FALSE; //射频接收完一包数据,准备处理
clr R2
sts _RFReceiveFlg,R2
.dbline 35
; RFReceiveCnt = 0;
sts _RFReceiveCnt,R2
.dbline 37
;
; Beep_Flag=TRUE;
ldi R24,1
sts _Beep_Flag,R24
.dbline 38
; BEEP_ON();
sbi 0xb,5
.dbline 39
; printf("RF Recved...");
ldi R16,<L9
ldi R17,>L9
rcall _printf
.dbline 41
;
; if( RFReceive_Buf[0]=='S'&&
lds R24,_RFReceive_Buf
cpi R24,83
breq X2
rjmp L10
X2:
lds R24,_RFReceive_Buf+1
cpi R24,101
breq X3
rjmp L10
X3:
lds R24,_RFReceive_Buf+2
cpi R24,110
breq X4
rjmp L10
X4:
lds R24,_RFReceive_Buf+3
cpi R24,100
brne L10
.dbline 45
; RFReceive_Buf[1]=='e'&&
; RFReceive_Buf[2]=='n'&&
; RFReceive_Buf[3]=='d' )
; {
.dbline 46
; DIS_RX(); //禁止串口接收
lds R24,193
andi R24,239
sts 193,R24
.dbline 47
; DIS_RX_INT(); //禁止串口接收中断
lds R24,193
andi R24,127
sts 193,R24
.dbline 49
;
; Test_RFTx_Buf[0]='R';
ldi R24,82
sts _Test_RFTx_Buf,R24
.dbline 50
; Test_RFTx_Buf[1]='e';
ldi R24,101
sts _Test_RFTx_Buf+1,R24
.dbline 51
; Test_RFTx_Buf[2]='c';
ldi R24,99
sts _Test_RFTx_Buf+2,R24
.dbline 52
; Test_RFTx_Buf[3]='v';
ldi R24,118
sts _Test_RFTx_Buf+3,R24
.dbline 54
;
; for(i=0;i<MAX_DATA_TEST-4-1;i++)
clr R20
rjmp L21
L18:
.dbline 55
.dbline 56
ldi R24,<_Test_RFTx_Buf+4
ldi R25,>_Test_RFTx_Buf+4
mov R30,R20
clr R31
add R30,R24
adc R31,R25
mov R24,R20
subi R24,208 ; addi 48
std z+0,R24
.dbline 57
L19:
.dbline 54
inc R20
L21:
.dbline 54
cpi R20,43
brlo L18
.dbline 58
; {
; Test_RFTx_Buf[i+4]='0'+i;
; }
; Test_RFTx_Buf[MAX_DATA_TEST-1]='\n';//
ldi R24,10
sts _Test_RFTx_Buf+47,R24
.dbline 61
;
; #ifdef DEBUG
; printf("Test call\n");
ldi R16,<L24
ldi R17,>L24
rcall _printf
.dbline 62
; printf("Test answer!\n");
ldi R16,<L25
ldi R17,>L25
rcall _printf
.dbline 64
; #endif
; RF_SendPacket(Test_RFTx_Buf, MAX_DATA_TEST);//应答返回
ldi R18,48
ldi R16,<_Test_RFTx_Buf
ldi R17,>_Test_RFTx_Buf
rcall _RF_SendPacket
.dbline 65
; }
rjmp L11
L10:
.dbline 67
; else
; {
.dbline 68
; Uart_SendPacket();//发送串口
rcall _Uart_SendPacket
.dbline 69
; }
L11:
.dbline 70
; }
L7:
.dbline 72
;
; if (CC1100IntLFlg == TRUE)//CC1100接收、发送中断
lds R24,_CC1100IntLFlg
cpi R24,1
brne L26
.dbline 73
; {
.dbline 74
; CC1100IntLFlg = FALSE;
clr R2
sts _CC1100IntLFlg,R2
.dbline 75
; RF_ReceivePacket();
rcall _RF_ReceivePacket
.dbline 76
; }
L26:
.dbline 78
;
; if((Key_Scan()==TRUE) && CC1100IntHFlg==FALSE && CC1100IntLFlg==FALSE)
rcall _Key_Scan
cpi R16,1
brne L28
lds R2,_CC1100IntHFlg
tst R2
brne L28
lds R2,_CC1100IntLFlg
tst R2
brne L28
.dbline 79
; {
.dbline 80
; DIS_RX(); //禁止串口接收
lds R24,193
andi R24,239
sts 193,R24
.dbline 81
; DIS_RX_INT(); //禁止串口接收中断
lds R24,193
andi R24,127
sts 193,R24
.dbline 83
;
; Test_RFTx_Buf[0]='S';
ldi R24,83
sts _Test_RFTx_Buf,R24
.dbline 84
; Test_RFTx_Buf[1]='e';
ldi R24,101
sts _Test_RFTx_Buf+1,R24
.dbline 85
; Test_RFTx_Buf[2]='n';
ldi R24,110
sts _Test_RFTx_Buf+2,R24
.dbline 86
; Test_RFTx_Buf[3]='d';
ldi R24,100
sts _Test_RFTx_Buf+3,R24
.dbline 88
;
; for(i=0;i<MAX_DATA_TEST-4-1;i++)
clr R20
rjmp L36
L33:
.dbline 89
.dbline 90
ldi R24,<_Test_RFTx_Buf+4
ldi R25,>_Test_RFTx_Buf+4
mov R30,R20
clr R31
add R30,R24
adc R31,R25
mov R24,R20
subi R24,208 ; addi 48
std z+0,R24
.dbline 91
L34:
.dbline 88
inc R20
L36:
.dbline 88
cpi R20,43
brlo L33
.dbline 92
; {
; Test_RFTx_Buf[i+4]='0'+i;
; }
; Test_RFTx_Buf[MAX_DATA_TEST-1]='\n';
ldi R24,10
sts _Test_RFTx_Buf+47,R24
.dbline 95
;
; #ifdef DEBUG
; printf("Key Send To RF!\n");
ldi R16,<L39
ldi R17,>L39
rcall _printf
.dbline 97
; #endif
; RF_SendPacket(Test_RFTx_Buf, MAX_DATA_TEST);
ldi R18,48
ldi R16,<_Test_RFTx_Buf
ldi R17,>_Test_RFTx_Buf
rcall _RF_SendPacket
.dbline 98
; }
L28:
.dbline 99
L3:
.dbline 23
rjmp L2
X0:
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbend
.area data(ram, con, rel)
.dbfile D:\WIRELE~1\CC1020~1\SoftWare\SoftWare\main.c
L39:
.blkb 17
.area idata
.byte 'K,'e,'y,32,'S,'e,'n,'d,32,'T,'o,32,'R,'F,33,10
.byte 0
.area data(ram, con, rel)
.dbfile D:\WIRELE~1\CC1020~1\SoftWare\SoftWare\main.c
L25:
.blkb 14
.area idata
.byte 'T,'e,'s,'t,32,'a,'n,'s,'w,'e,'r,33,10,0
.area data(ram, con, rel)
.dbfile D:\WIRELE~1\CC1020~1\SoftWare\SoftWare\main.c
L24:
.blkb 11
.area idata
.byte 'T,'e,'s,'t,32,'c,'a,'l,'l,10,0
.area data(ram, con, rel)
.dbfile D:\WIRELE~1\CC1020~1\SoftWare\SoftWare\main.c
L9:
.blkb 13
.area idata
.byte 'R,'F,32,'R,'e,'c,'v,'e,'d,46,46,46,0
.area data(ram, con, rel)
.dbfile D:\WIRELE~1\CC1020~1\SoftWare\SoftWare\main.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -