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

📄 main.s

📁 CC1000通信
💻 S
📖 第 1 页 / 共 2 页
字号:
	.module main.c
	.area lit(rom, con, rel)
_ConfigurationTX::
	.byte 'X,32
	.byte 0,'B
	.byte 20,156
	.byte 2,128
	.byte 129,18
	.byte 15,'H
	.byte 16,38
	.byte 140,125
	.byte 43,'p
	.byte 1,0
	.byte 16,8
	.byte 37,4
	.byte 0,0
	.byte 0
	.dbfile D:\FZCCC\main.c
	.dbsym e ConfigurationTX _ConfigurationTX A[27:27]kc
_ConfigurationRX::
	.byte 'X,32
	.byte 0,'B
	.byte 20,156
	.byte 2,128
	.byte 'D,18
	.byte 15,96
	.byte 16,38
	.byte 142,125
	.byte 43,'p
	.byte 1,0
	.byte 16,8
	.byte 37,4
	.byte 0,0
	.byte 0
	.dbsym e ConfigurationRX _ConfigurationRX A[27:27]kc
	.area text(rom, con, rel)
	.dbfile D:\FZCCC\main.c
	.dbfunc e delay _delay fV
;              i -> R20,R21
;              j -> R22,R23
;              t -> R16,R17
	.even
_delay::
	xcall push_gset2
	.dbline -1
	.dbline 115
; #include "CC1000.h"
; #include "iom128v.h"
; 
; #define flag   0
; #define MAX   3
; //flag 1 is TX,0 is RX  ;MAX is long  of receive data buf 
; //=======================================================
; //	CC1000的参数
; //=======================================================
; /*const unsigned char Configuration[] =
; {
;   0x58,  // 0x01, FREQ_2A
;   0x20,  // 0x02, FREQ_1A
;   0x00,  // 0x03, FREQ_0A
;   0x58,	//0x42,  // 0x04, FREQ_2B
;   0x06, //0x15,  // 0x05, FREQ_1B
;   0x25,  //0x78,  // 0x06, FREQ_0B
; 
;   0x00,  // 0x07, FSEP1
;   0xc8,  // 0x08, FSEP0
;   0x63,  //0x81,  // 0x09, CURRENT
; 
;   0x12,  // 0x0A, FRONT_END
;   0xFF,  // 0x0B, PA_POW
;   0x18,  //0x48,  // 0x0C, PLL
;   0x10,  // 0x0D, LOCK
;   0x26,  // 0x0E, CAL
;   0x8e,  // 0x0F, MODEM2
;   0x6c,  // 0x10, MODEM1
;   0x2B, //0x27,  // 0x11, MODEM0
;   0x70,  // 0x12, MATCH
;   0x01,  // 0x13, FSCTRL
;   
;   0x00,  // 0x1C, PRESCALER
; 
;   0x10,	//	40h test6
;   0x08,	//	41h test5
;   0x25,  // 42h, TEST4
;   0x04,	//	43h,test3
;   0x00,	//	44h,test2
;   0x00,	//	45h,test1
;   0x00,	//	46h,test0
; };
; */
; 
; const unsigned char ConfigurationTX[] =
; {
;   0x58,           // 0x01, FREQ_2A
;   0x20,           // 0x02, FREQ_1A
;   0x00,           // 0x03, FREQ_0A
;   0x42,           // 0x04, FREQ_2B
;   0x14, //0x15,           // 0x05, FREQ_1B
;   0x9C, //0x78,           // 0x06, FREQ_0B
; 
;   0X02,//0x00,           // 0x07, FSEP1
;   0X80,//0xc8,           // 0x08, FSEP0
;   0x81,           // 0x09, CURRENT
; 
;   0X12,//0x10,           // 0x0A, FRONT_END
;   0X0F,//0xFF,           // 0x0B, PA_POW
;   0x48,           // 0x0C, PLL
;   0x10,           // 0x0D, LOCK
;   0x26,           // 0x0E, CAL
;   0x8C,            // 0x0F, MODEM2
;   0x7D,            // 0x10, MODEM1  //Manchester
;   0x2B,            // 0x11, MODEM0   //Manchester is 0x27  UART is 0x2B    NRZ  is 0x23
;   0x70,           // 0x12, MATCH
;   0x01,            // 0x13, FSCTRL
;   
;   0x00,            // 0x1C, PRESCALER
; 
;   0x10,	            //	40h test6
;   0x08,	           //	41h test5
;   0x25,            // 42h, TEST4
;   0x04,	           //	43h,test3
;   0x00,	          //	44h,test2
;   0x00,	          //	45h,test1
;   0x00,	          //	46h,test0
; };
; const unsigned char ConfigurationRX[] =
; {
;   0x58,           // 0x01, FREQ_2A
;   0x20,           // 0x02, FREQ_1A
;   0x00,           // 0x03, FREQ_0A
;   0x42,           // 0x04, FREQ_2B
;   0x14, //0x15,           // 0x05, FREQ_1B
;   0x9C, //0x78,           // 0x06, FREQ_0B
; 
;   0X02,//0x00,           // 0x07, FSEP1
;   0X80,//0xc8,           // 0x08, FSEP0
;   0x44,           // 0x09, CURRENT
; 
;   0X12,//0x10,           // 0x0A, FRONT_END
;   0X0F,//0xFF,           // 0x0B, PA_POW
;   0x60,           // 0x0C, PLL
;   0x10,           // 0x0D, LOCK
;   0x26,           // 0x0E, CAL
;   0x8E,            // 0x0F, MODEM2
;   0x7D,            // 0x10, MODEM1  //Manchester
;   0x2B,            // 0x11, MODEM0   //Manchester is 0x27  UART is 0x2B    NRZ  is 0x23
;   0x70,           // 0x12, MATCH
;   0x01,            // 0x13, FSCTRL
;   
;   0x00,            // 0x1C, PRESCALER
; 
;   0x10,	            //	40h test6
;   0x08,	           //	41h test5
;   0x25,            // 42h, TEST4
;   0x04,	           //	43h,test3
;   0x00,	          //	44h,test2
;   0x00,	          //	45h,test1
;   0x00,	          //	46h,test0
; };
; void delay(int t)
;      {
	.dbline 117
; 	  int i,j;
; 	  for(i = 0;i < t;i++)
	clr R20
	clr R21
	xjmp L5
L2:
	.dbline 118
	clr R22
	clr R23
	xjmp L9
L6:
	.dbline 118
L7:
	.dbline 118
	subi R22,255  ; offset = 1
	sbci R23,255
L9:
	.dbline 118
	cp R22,R16
	cpc R23,R17
	brlt L6
L3:
	.dbline 117
	subi R20,255  ; offset = 1
	sbci R21,255
L5:
	.dbline 117
	cp R20,R16
	cpc R21,R17
	brlt L2
	.dbline -2
L1:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 I
	.dbsym r j 22 I
	.dbsym r t 16 I
	.dbend
	.dbfunc e C1000_TX_MODE _C1000_TX_MODE fV
;      MainValue -> R20
	.even
_C1000_TX_MODE::
	xcall push_gset1
	.dbline -1
	.dbline 123
; 	    for(j = 0;j < t;j++);
; 	 }
; 
; 
; void C1000_TX_MODE(void)
; {
	.dbline 131
;  /*WriteToCC1000Register(CC1000_MAIN,0xe1); // set to TX mode
;  //WriteToCC1000Register(CC1000_PA_POW,0xFF); // no output power needed
;  WriteToCC1000Register(CC1000_CURRENT,0x60); // set TX current level
;  WriteToCC1000Register(CC1000_PLL,0x18);   
;  WriteToCC1000Register(CC1000_PA_POW,0xFF); 
; */
;     char MainValue;
;     MainValue=ReadFromCC1000Register(CC1000_MAIN);
	clr R16
	xcall _ReadFromCC1000Register
	mov R20,R16
	.dbline 132
; 	WriteToCC1000Register(CC1000_MAIN,(MainValue & 0xE1) | 0xC0);         //RXTX=1,F_REG=1,TX_PD=0,FS_PD=0 
	mov R18,R20
	andi R18,225
	ori R18,192
	clr R16
	xcall _WriteToCC1000Register
	.dbline 133
; 	WriteToCC1000Register(CC1000_PA_POW,0x00);
	clr R18
	ldi R16,11
	xcall _WriteToCC1000Register
	.dbline 134
; 	WriteToCC1000Register(CC1000_CURRENT, 0x81);//68
	ldi R18,129
	ldi R16,9
	xcall _WriteToCC1000Register
	.dbline 135
; 	WriteToCC1000Register(CC1000_PLL, 0x48);
	ldi R18,72
	ldi R16,12
	xcall _WriteToCC1000Register
	.dbline 137
; 
; 	delay(12);
	ldi R16,12
	ldi R17,0
	xcall _delay
	.dbline 138
; 	WriteToCC1000Register(CC1000_PA_POW,0x08);
	ldi R18,8
	ldi R16,11
	xcall _WriteToCC1000Register
	.dbline 139
; 	delay(2);
	ldi R16,2
	ldi R17,0
	xcall _delay
	.dbline -2
L10:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r MainValue 20 c
	.dbend
	.dbfunc e C1000_RX_MODE _C1000_RX_MODE fV
;      MainValue -> R20
	.even
_C1000_RX_MODE::
	xcall push_gset1
	.dbline -1
	.dbline 145
; 
; }
; 
; 
; void C1000_RX_MODE(void)
; {
	.dbline 153
;  /*WriteToCC1000Register(CC1000_MAIN,0x17); // set to RX mode//原先是x11
;  //WriteToCC1000Register(CC1000_PA_POW,0xFF); // no output power needed
;  WriteToCC1000Register(CC1000_CURRENT,0x70); // set TX current level
;  WriteToCC1000Register(CC1000_PLL,0x18); 
;  delay(12);  
;  */
;     char MainValue;
;     MainValue=ReadFromCC1000Register(CC1000_MAIN);
	clr R16
	xcall _ReadFromCC1000Register
	mov R20,R16
	.dbline 154
; 	WriteToCC1000Register(CC1000_MAIN,(MainValue & 0x11) );         //RXTX=0,F_REG=0,RX_PD=0,FS_PD=0 
	mov R18,R20
	andi R18,17
	clr R16
	xcall _WriteToCC1000Register
	.dbline 155
; 	WriteToCC1000Register(CC1000_PA_POW,0x00);
	clr R18
	ldi R16,11
	xcall _WriteToCC1000Register
	.dbline 156
; 	WriteToCC1000Register(CC1000_CURRENT, 0x44);//0x44
	ldi R18,68
	ldi R16,9
	xcall _WriteToCC1000Register
	.dbline 157
; 	WriteToCC1000Register(CC1000_PLL, 0x60);
	ldi R18,96
	ldi R16,12
	xcall _WriteToCC1000Register
	.dbline 159
; 
; 	delay(12);
	ldi R16,12
	ldi R17,0
	xcall _delay
	.dbline -2
L11:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r MainValue 20 c
	.dbend
	.dbfunc e init_usart _init_usart fV
	.even
_init_usart::
	.dbline -1
	.dbline 164
;    
; }
; 
; void init_usart(void)
; {
	.dbline 166
; 
; 	UCSR0B =  0x00;                                                                
	clr R2
	out 0xa,R2
	.dbline 167
; 	UCSR0A =  0x00;
	out 0xb,R2
	.dbline 168
; 	UCSR0C =  0x06;
	ldi R24,6
	sts 149,R24
	.dbline 169
; 	UBRR0L =  0x67;       //BOUDRATE 2400                                                         
	ldi R24,103
	out 0x9,R24
	.dbline 170
; 	UBRR0H =  0x00;                                                                 
	sts 144,R2
	.dbline 171
; 	UCSR0B =  0x18;
	ldi R24,24
	out 0xa,R24
	.dbline -2
L12:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Init _Init fV
;      MainValue -> R20
;           addr -> R22
	.even
_Init::
	xcall push_gset2
	.dbline -1
	.dbline 175
; }
; 
; void Init()
; {
	.dbline 180
; 	char MainValue;
; 	char addr;
; 
; 	
; 	WriteToCC1000Register(CC1000_MAIN,0x3F);    // Put CC1000 into power-down
	ldi R18,63
	clr R16
	xcall _WriteToCC1000Register
	.dbline 181
; 	WriteToCC1000Register(CC1000_PA_POW,0x00);  // Turn off PA to minimise current draw
	clr R18
	ldi R16,11
	xcall _WriteToCC1000Register
	.dbline 183
; 	
; 	MainValue=ReadFromCC1000Register(CC1000_MAIN);
	clr R16
	xcall _ReadFromCC1000Register
	mov R20,R16
	.dbline 184
; 	WriteToCC1000Register(CC1000_MAIN,MainValue & 0xFE);         // Reset CC1000   原先是WriteToCC1000Register(CC1000_MAIN,MainValue & 0xFA);by yu
	mov R18,R20
	andi R18,254
	clr R16
	xcall _WriteToCC1000Register
	.dbline 185
; 	WriteToCC1000Register(CC1000_MAIN,MainValue | 0x01); 
	mov R18,R20
	ori R18,1
	clr R16
	xcall _WriteToCC1000Register
	.dbline 189
;     
; 	
; 
; 	WriteToCC1000Register(CC1000_MAIN,0x3A);
	ldi R18,58
	clr R16
	xcall _WriteToCC1000Register
	.dbline 191
; 
; 	delay(38);
	ldi R16,38
	ldi R17,0
	xcall _delay
	.dbline 193
; 
; 	for(addr = 1; addr <= 0x1c; addr ++)
	ldi R22,1
	xjmp L17
L14:
	.dbline 194
	ldi R24,<_ConfigurationRX-1
	ldi R25,>_ConfigurationRX-1
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	lpm R18,Z
	mov R16,R22
	xcall _WriteToCC1000Register
L15:
	.dbline 193
	inc R22
L17:
	.dbline 193
	ldi R24,28
	cp R24,R22
	brsh L14
	.dbline 197
; 		WriteToCC1000Register(addr, ConfigurationRX[addr - 1]);
; 		//WriteToCC1000Register(addr, ConfigurationRX[addr - 1]);
; /////////////////////////////////////////by yu //////////////////////////////////////////////	
; 	WriteToCC1000Register(0x1c,0x00);   //仿造Pic 里的void ConfigureCC1000()
	clr R18
	ldi R16,28
	xcall _WriteToCC1000Register
	.dbline 199
; ///////////////////////////////////////////////////////////////////////////////////////
; 	for(addr = 0x40; addr <= 0x46; addr ++)
	ldi R22,64
	xjmp L22
L19:
	.dbline 200
	ldi R24,<_ConfigurationTX+20-64
	ldi R25,>_ConfigurationTX+20-64
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	lpm R18,Z
	mov R16,R22
	xcall _WriteToCC1000Register
L20:
	.dbline 199
	inc R22
L22:
	.dbline 199
	ldi R24,70
	cp R24,R22
	brsh L19
	.dbline 274
; 		WriteToCC1000Register(addr, ConfigurationTX[addr - 0x40 + 0x14]); 
; 		//WriteToCC1000Register(addr, ConfigurationRX[addr - 0x40 + 0x14]); 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -