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

📄 board.s

📁 chipcom公司CC1100无线模块底层驱动程序
💻 S
📖 第 1 页 / 共 4 页
字号:
; 	EN_RX_INT();
	lds R24,193
	ori R24,128
	sts 193,R24
	.dbline -2
L11:
	.dbline 0 ; func end
	ret
	.dbend
	.area vector(rom, abs)
	.org 38
	rjmp _uart0_tx_isr
	.area text(rom, con, rel)
	.dbfile D:\WIRELE~1\CC1020~1\SoftWare\SoftWare\board.c
	.dbfunc e uart0_tx_isr _uart0_tx_isr fV
	.even
_uart0_tx_isr::
	st -y,R2
	st -y,R24
	st -y,R25
	st -y,R30
	st -y,R31
	in R2,0x3f
	st -y,R2
	.dbline -1
	.dbline 248
	.dbline 249
	ldi R24,<_RFReceive_Buf
	ldi R25,>_RFReceive_Buf
	lds R30,_RFReceiveCnt
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	sts 198,R2
	.dbline 250
	lds R24,_RFReceiveCnt
	subi R24,255    ; addi 1
	sts _RFReceiveCnt,R24
	.dbline 251
	lds R2,_RFReceiveLen
	cp R24,R2
	brne L15
	.dbline 252
	.dbline 253
	lds R24,193
	andi R24,223
	sts 193,R24
	.dbline 254
L15:
	.dbline -2
L14:
	ld R2,y+
	out 0x3f,R2
	ld R31,y+
	ld R30,y+
	ld R25,y+
	ld R24,y+
	ld R2,y+
	.dbline 0 ; func end
	reti
	.dbend
	.area vector(rom, abs)
	.org 36
	rjmp _uart0_rx_isr
	.area text(rom, con, rel)
	.dbfile D:\WIRELE~1\CC1020~1\SoftWare\SoftWare\board.c
	.dbfunc e uart0_rx_isr _uart0_rx_isr fV
	.even
_uart0_rx_isr::
	st -y,R2
	st -y,R24
	st -y,R25
	st -y,R30
	st -y,R31
	in R2,0x3f
	st -y,R2
	.dbline -1
	.dbline 266
	.dbline 267
	clr R2
	sts _RXOTCnt,R2
	.dbline 268
	ldi R24,1
	sts _RXOTFlg,R24
	.dbline 270
	ldi R24,<_UartReceive_Buf
	ldi R25,>_UartReceive_Buf
	lds R30,_RFSendCnt
	clr R31
	add R30,R24
	adc R31,R25
	lds R2,198
	std z+0,R2
	.dbline 271
	lds R24,_RFSendCnt
	subi R24,255    ; addi 1
	sts _RFSendCnt,R24
	.dbline 272
	cpi R24,60
	brne L18
	.dbline 273
	.dbline 274
	clr R2
	sts _RXOTFlg,R2
	.dbline 276
	ldi R24,1
	sts _RFSendFlg,R24
	.dbline 277
	lds R24,193
	andi R24,239
	sts 193,R24
	.dbline 278
	lds R24,193
	andi R24,127
	sts 193,R24
	.dbline 279
L18:
	.dbline -2
L17:
	ld R2,y+
	out 0x3f,R2
	ld R31,y+
	ld R30,y+
	ld R25,y+
	ld R24,y+
	ld R2,y+
	.dbline 0 ; func end
	reti
	.dbend
	.dbfunc e timer0_init _timer0_init fV
	.even
_timer0_init::
	.dbline -1
	.dbline 290
; }
; /*
; ************************************************************
; *Description:串口发送中断函数
; *Arguments  :none
; *Returns    :none
; *Notes      :
; ************************************************************
; */
; #pragma interrupt_handler uart0_tx_isr:iv_USART0_UDRE
; void uart0_tx_isr (void)
; {
; 	UDR0 = RFReceive_Buf[RFReceiveCnt];
; 	RFReceiveCnt++;
; 	if (RFReceiveCnt == RFReceiveLen)
; 	{
; 	    DIS_TX_INT();  //串口数据发送完毕,关闭发送空中断
; 	}
; }
; /*
; ************************************************************
; *Description:串口接收中断函数
; *Arguments  :none
; *Returns    :none
; *Notes      :利用超时处理来决定一包数据是否接收完成
; ************************************************************
; */
; #pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC
; void uart0_rx_isr (void)
; {
; 	RXOTCnt = 0;
; 	RXOTFlg = TRUE;
; 
; 	UartReceive_Buf[RFSendCnt] = UDR0;
; 	RFSendCnt++;
; 	if (RFSendCnt == MAX_DATA_NUM)         //1字节的包长 + 60字节数据(共61字节)最大60字节
; 	{
; 		RXOTFlg = FALSE;
; 
; 		RFSendFlg = TRUE;        //接收完最大一包数据,准备射频发送
; 		DIS_RX();   //禁止串口接收
; 		DIS_RX_INT();            //禁止串口接收中断
; 	}
; }
; /*
; ************************************************************
; *Description:初始化软件定时器
; *Arguments  :none
; *Returns    :none
; *Notes      :
; ************************************************************
; */
; void timer0_init(void)
; {
	.dbline 291
; 	TCCR0B |= (BIT(CS02) | BIT(CS00)); //1024分频,开始计数
	in R24,0x25
	ori R24,5
	out 0x25,R24
	.dbline 292
; 	TIMSK0 |= BIT(TOIE0);              //使能Timer0溢出中断
	lds R24,110
	ori R24,1
	sts 110,R24
	.dbline 293
; 	TCNT0 = Sys_Set[Baud_Set_Num].tcnt0_val;
	lds R2,_Baud_Set_Num
	ldi R24,8
	mul R24,R2
	movw R30,R0
	ldi R24,<_Sys_Set
	ldi R25,>_Sys_Set
	add R30,R24
	adc R31,R25
	lpm R30,Z
	out 0x26,R30
	.dbline -2
L20:
	.dbline 0 ; func end
	ret
	.dbend
	.area vector(rom, abs)
	.org 32
	rjmp _IntTimer0
	.area text(rom, con, rel)
	.dbfile D:\WIRELE~1\CC1020~1\SoftWare\SoftWare\board.c
	.dbfunc e IntTimer0 _IntTimer0 fV
	.even
_IntTimer0::
	st -y,R0
	st -y,R1
	st -y,R2
	st -y,R3
	st -y,R24
	st -y,R25
	st -y,R30
	st -y,R31
	in R0,0x3f
	st -y,R0
	.dbline -1
	.dbline 306
; }
; 
; /*
; ************************************************************
; *Description:串口接收的超时处理中断时间函数
; *Arguments  :none
; *Returns    :none
; *Notes      :超时10ms
; ************************************************************
; */
; #pragma interrupt_handler IntTimer0:iv_TIMER0_OVF
; void IntTimer0 (void)
; {
	.dbline 307
;     TCNT0   = Sys_Set[Baud_Set_Num].tcnt0_val;
	lds R2,_Baud_Set_Num
	ldi R24,8
	mul R24,R2
	movw R30,R0
	ldi R24,<_Sys_Set
	ldi R25,>_Sys_Set
	add R30,R24
	adc R31,R25
	lpm R30,Z
	out 0x26,R30
	.dbline 309
; 
; 	if(Beep_Flag==TRUE)
	lds R24,_Beep_Flag
	cpi R24,1
	brne L22
	.dbline 310
; 	{
	.dbline 311
; 		if(Beep_Time++>50)
	lds R2,_Beep_Time
	lds R3,_Beep_Time+1
	movw R24,R2
	adiw R24,1
	sts _Beep_Time+1,R25
	sts _Beep_Time,R24
	ldi R24,50
	ldi R25,0
	cp R24,R2
	cpc R25,R3
	brsh L24
	.dbline 312
; 		{
	.dbline 313
; 			BEEP_OFF();
	cbi 0xb,5
	.dbline 314
; 			Beep_Time=0;
	clr R2
	clr R3
	sts _Beep_Time+1,R3
	sts _Beep_Time,R2
	.dbline 315
; 			Beep_Flag=FALSE;
	sts _Beep_Flag,R2
	.dbline 316
; 		}
L24:
	.dbline 317
; 	}
L22:
	.dbline 319
; 
; 	if (RXOTFlg == TRUE)
	lds R24,_RXOTFlg
	cpi R24,1
	brne L26
	.dbline 320
; 	{
	.dbline 321
; 		RXOTCnt++;
	lds R24,_RXOTCnt
	subi R24,255    ; addi 1
	sts _RXOTCnt,R24
	.dbline 322
; 		if (RXOTCnt == 2)
	cpi R24,2
	brne L28
	.dbline 323
; 		{
	.dbline 324
; 		    RXOTFlg = FALSE;
	clr R2
	sts _RXOTFlg,R2
	.dbline 325
; 			RFSendFlg = TRUE; 	//接收超时
	ldi R24,1
	sts _RFSendFlg,R24
	.dbline 326
; 			DIS_RX();   		//禁止串口接收
	lds R24,193
	andi R24,239
	sts 193,R24
	.dbline 327
; 			DIS_RX_INT();		//禁止串口接收中断
	lds R24,193
	andi R24,127
	sts 193,R24
	.dbline 328
; 		}
L28:
	.dbline 329
L26:
	.dbline -2
L21:
	ld R0,y+
	out 0x3f,R0
	ld R31,y+
	ld R30,y+
	ld R25,y+
	ld R24,y+
	ld R3,y+
	ld R2,y+
	ld R1,y+
	ld R0,y+
	.dbline 0 ; func end
	reti
	.dbend
	.dbfunc e Delay _Delay fV
;              i -> R20,R21
;            dly -> R16,R17
	.even
_Delay::
	rcall push_gset1
	.dbline -1
	.dbline 341
; 	}
; }
; /*
; ************************************************************
; *Description:延时函数
; *Arguments  :none
; *Returns    :none
; *Notes      :
; ************************************************************
; */
; 
; void Delay(INT16U dly)
; {
	.dbline 344
	clr R20
	clr R21
	rjmp L34
L31:
	.dbline 344
L32:
	.dbline 344
	subi R20,255  ; offset = 1
	sbci R21,255
L34:
	.dbline 344
; 	INT16U i;
; 
; 	for(i=0;i<dly;i++);
	cp R20,R16
	cpc R21,R17
	brlo L31
	.dbline -2
L30:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbsym r dly 16 i
	.dbend
	.dbfunc e RF_Sts_ToRX _RF_Sts_ToRX fV
	.even
_RF_Sts_ToRX::
	.dbline -1
	.dbline 356
; }
; 
; /*
; ************************************************************
; *Description:切换CC1100工作状态为接收
; *Arguments  :none
; *Returns    :none
; *Notes      :
; ************************************************************
; */
; void RF_Sts_ToRX(void)
; {
	.dbline 357
; 	CC1100Strobe(CC1100_SIDLE);		//强制转为空闲状态
	ldi R16,54
	rcall _CC1100Strobe
	.dbline 358
; 	Delay(1000);
	ldi R16,1000
	ldi R17,3
	rcall _Delay
	.dbline 359
; 	CC1100Strobe(CC1100_SFRX);		//清除接收缓存
	ldi R16,58
	rcall _CC1100Strobe
	.dbline 360
; 	CC1100Strobe(CC1100_SRX);		//切换到接收模式,进入FS_WAKEUP
	ldi R16,52
	rcall _CC1100Strobe
	.dbline 361
; 	CC1100Strobe(CC1100_SRX);       //进入CALIBRATE
	ldi R16,52
	rcall _CC1100Strobe
	.dbline 362
; 	Delay(1000); 					//进入SETTLING
	ldi R16,1000
	ldi R17,3
	rcall _Delay
	.dbline 363
; 	CC1100Strobe(CC1100_SRX);		//进入RX
	ldi R16,52
	rcall _CC1100Strobe
	.dbline -2
L35:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e RF_Sts_ToTX _RF_Sts_ToTX fV
	.even
_RF_Sts_ToTX::
	.dbline -1
	.dbline 374
; }
; /*
; ************************************************************
; *Description:切换CC1100工作状态为发送
; *Arguments  :none
; *Returns    :none
; *Notes      :
; ************************************************************
; */
; void RF_Sts_ToTX(void)
; {
	.dbline 375
; 	CC1100Strobe(CC1100_SIDLE);		//强制转为空闲状态
	ldi R16,54
	rcall _CC1100Strobe
	.dbline 376
; 	Delay(1000);
	ldi R16,1000
	ldi R17,3
	rcall _Delay
	.dbline 377
; 	CC1100Strobe(CC1100_SFTX);		//清除发送缓存
	ldi R16,59
	rcall _CC1100Strobe
	.dbline 378
; 	CC1100Strobe(CC1100_STX);		//切换到发送模式,进入FS_WAKEUP
	ldi R16,53
	rcall _CC1100Strobe
	.dbline 379
; 	CC1100Strobe(CC1100_STX);		//进入CALIBRATE
	ldi R16,53
	rcall _CC1100Strobe
	.dbline 380
; 	Delay(1000);					//进入SETTLING
	ldi R16,1000
	ldi R17,3
	rcall _Delay
	.dbline 381
; 	CC1100Strobe(CC1100_STX);		//进入TX
	ldi R16,53
	rcall _CC1100Strobe
	.dbline -2
L36:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e CC1100WriteRfSettings _CC1100WriteRfSettings fV
	.even
_CC1100WriteRfSettings::
	.dbline -1
	.dbline 383
; }
; void CC1100WriteRfSettings(void) {
	.dbline 385
;     // Write register settings
;     CC1100WriteReg(CC1100_IOCFG2,   rfSettings.IOCFG2);
	ldi R30,<_rfSettings
	ldi R31,>_rfSettings
	lpm R18,Z
	clr R16
	rcall _CC1100WriteReg
	.dbline 386
; 	CC1100WriteReg(CC1100_IOCFG1,   rfSettings.IOCFG1);    
	ldi R30,<_rfSettings+1
	ldi R31,>_rfSettings+1
	lpm R18,Z
	ldi R16,1
	rcall _CC1100WriteReg
	.dbline 387
;     CC1100WriteReg(CC1100_IOCFG0,   rfSettings.IOCFG0);    
	ldi R30,<_rfSettings+2
	ldi R31,>_rfSettings+2

⌨️ 快捷键说明

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