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

📄 main.s

📁 chipcom公司CC1100无线模块底层驱动程序
💻 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 + -