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

📄 stm8s_awu.ls

📁 STM8全部资料
💻 LS
字号:
   1                     ; C Compiler for STM8 (COSMIC Software)
   2                     ; Parser V4.8.32.1 - 30 Mar 2010
   3                     ; Generator V4.3.4 - 23 Mar 2010
  15                     .const:	section	.text
  16  0000               _APR_Array:
  17  0000 00            	dc.b	0
  18  0001 1e            	dc.b	30
  19  0002 1e            	dc.b	30
  20  0003 1e            	dc.b	30
  21  0004 1e            	dc.b	30
  22  0005 1e            	dc.b	30
  23  0006 1e            	dc.b	30
  24  0007 1e            	dc.b	30
  25  0008 1e            	dc.b	30
  26  0009 1e            	dc.b	30
  27  000a 1e            	dc.b	30
  28  000b 1e            	dc.b	30
  29  000c 1e            	dc.b	30
  30  000d 3d            	dc.b	61
  31  000e 17            	dc.b	23
  32  000f 17            	dc.b	23
  33  0010 3e            	dc.b	62
  34  0011               _TBR_Array:
  35  0011 00            	dc.b	0
  36  0012 01            	dc.b	1
  37  0013 02            	dc.b	2
  38  0014 03            	dc.b	3
  39  0015 04            	dc.b	4
  40  0016 05            	dc.b	5
  41  0017 06            	dc.b	6
  42  0018 07            	dc.b	7
  43  0019 08            	dc.b	8
  44  001a 09            	dc.b	9
  45  001b 0a            	dc.b	10
  46  001c 0b            	dc.b	11
  47  001d 0c            	dc.b	12
  48  001e 0c            	dc.b	12
  49  001f 0e            	dc.b	14
  50  0020 0f            	dc.b	15
  51  0021 0f            	dc.b	15
  80                     ; 83 void AWU_DeInit(void)
  80                     ; 84 {
  82                     	switch	.text
  83  0000               _AWU_DeInit:
  87                     ; 85   AWU->CSR = AWU_CSR_RESET_VALUE;
  89  0000 725f50f0      	clr	20720
  90                     ; 86   AWU->APR = AWU_APR_RESET_VALUE;
  92  0004 353f50f1      	mov	20721,#63
  93                     ; 87   AWU->TBR = AWU_TBR_RESET_VALUE;
  95  0008 725f50f2      	clr	20722
  96                     ; 88 }
  99  000c 81            	ret
 261                     ; 105 void AWU_Init(AWU_Timebase_TypeDef AWU_TimeBase)
 261                     ; 106 {
 262                     	switch	.text
 263  000d               _AWU_Init:
 265  000d 88            	push	a
 266       00000000      OFST:	set	0
 269                     ; 109   assert_param(IS_AWU_TIMEBASE_OK(AWU_TimeBase));
 271                     ; 112   AWU->CSR |= AWU_CSR_AWUEN;
 273  000e 721850f0      	bset	20720,#4
 274                     ; 115   AWU->TBR &= (u8)(~AWU_TBR_AWUTB);
 276  0012 c650f2        	ld	a,20722
 277  0015 a4f0          	and	a,#240
 278  0017 c750f2        	ld	20722,a
 279                     ; 116   AWU->TBR |= TBR_Array[(u8)AWU_TimeBase];
 281  001a 7b01          	ld	a,(OFST+1,sp)
 282  001c 5f            	clrw	x
 283  001d 97            	ld	xl,a
 284  001e c650f2        	ld	a,20722
 285  0021 da0011        	or	a,(_TBR_Array,x)
 286  0024 c750f2        	ld	20722,a
 287                     ; 119   AWU->APR &= (u8)(~AWU_APR_APR);
 289  0027 c650f1        	ld	a,20721
 290  002a a4c0          	and	a,#192
 291  002c c750f1        	ld	20721,a
 292                     ; 120   AWU->APR |= APR_Array[(u8)AWU_TimeBase];
 294  002f 7b01          	ld	a,(OFST+1,sp)
 295  0031 5f            	clrw	x
 296  0032 97            	ld	xl,a
 297  0033 c650f1        	ld	a,20721
 298  0036 da0000        	or	a,(_APR_Array,x)
 299  0039 c750f1        	ld	20721,a
 300                     ; 122 }
 303  003c 84            	pop	a
 304  003d 81            	ret
 359                     ; 137 void AWU_Cmd(FunctionalState NewState)
 359                     ; 138 {
 360                     	switch	.text
 361  003e               _AWU_Cmd:
 365                     ; 139   if (NewState != DISABLE)
 367  003e 4d            	tnz	a
 368  003f 2706          	jreq	L331
 369                     ; 142     AWU->CSR |= AWU_CSR_AWUEN;
 371  0041 721850f0      	bset	20720,#4
 373  0045 2004          	jra	L531
 374  0047               L331:
 375                     ; 147     AWU->CSR &= (u8)(~AWU_CSR_AWUEN);
 377  0047 721950f0      	bres	20720,#4
 378  004b               L531:
 379                     ; 149 }
 382  004b 81            	ret
 429                     	switch	.const
 430  0022               L41:
 431  0022 000003e8      	dc.l	1000
 432                     ; 176 void AWU_LSICalibrationConfig(u32 LSIFreqHz)
 432                     ; 177 {
 433                     	switch	.text
 434  004c               _AWU_LSICalibrationConfig:
 436  004c 5206          	subw	sp,#6
 437       00000006      OFST:	set	6
 440                     ; 179   u16 lsifreqkhz = 0x0;
 442                     ; 180   u16 A = 0x0;
 444                     ; 183   assert_param(IS_LSI_FREQUENCY_OK(LSIFreqHz));
 446                     ; 185   lsifreqkhz = (u16)(LSIFreqHz / 1000); /* Converts value in kHz */
 448  004e 96            	ldw	x,sp
 449  004f 1c0009        	addw	x,#OFST+3
 450  0052 cd0000        	call	c_ltor
 452  0055 ae0022        	ldw	x,#L41
 453  0058 cd0000        	call	c_ludv
 455  005b be02          	ldw	x,c_lreg+2
 456  005d 1f03          	ldw	(OFST-3,sp),x
 457                     ; 189   A = (u16)(lsifreqkhz >> 2U); /* Division by 4, keep integer part only */
 459  005f 1e03          	ldw	x,(OFST-3,sp)
 460  0061 54            	srlw	x
 461  0062 54            	srlw	x
 462  0063 1f05          	ldw	(OFST-1,sp),x
 463                     ; 191   if ((4U * A) >= ((lsifreqkhz - (4U * A)) * (1U + (2U * A))))
 465  0065 1e05          	ldw	x,(OFST-1,sp)
 466  0067 58            	sllw	x
 467  0068 58            	sllw	x
 468  0069 1f01          	ldw	(OFST-5,sp),x
 469  006b 1e03          	ldw	x,(OFST-3,sp)
 470  006d 72f001        	subw	x,(OFST-5,sp)
 471  0070 1605          	ldw	y,(OFST-1,sp)
 472  0072 9058          	sllw	y
 473  0074 905c          	incw	y
 474  0076 cd0000        	call	c_imul
 476  0079 1605          	ldw	y,(OFST-1,sp)
 477  007b 9058          	sllw	y
 478  007d 9058          	sllw	y
 479  007f bf00          	ldw	c_x,x
 480  0081 90b300        	cpw	y,c_x
 481  0084 2509          	jrult	L751
 482                     ; 193     AWU->APR = (u8)(A - 2U);
 484  0086 7b06          	ld	a,(OFST+0,sp)
 485  0088 a002          	sub	a,#2
 486  008a c750f1        	ld	20721,a
 488  008d 2006          	jra	L161
 489  008f               L751:
 490                     ; 197     AWU->APR = (u8)(A - 1U);
 492  008f 7b06          	ld	a,(OFST+0,sp)
 493  0091 4a            	dec	a
 494  0092 c750f1        	ld	20721,a
 495  0095               L161:
 496                     ; 201   AWU->CSR |= AWU_CSR_MR;
 498  0095 721250f0      	bset	20720,#1
 499                     ; 203 }
 502  0099 5b06          	addw	sp,#6
 503  009b 81            	ret
 577                     	switch	.const
 578  0026               L02:
 579  0026 000186a0      	dc.l	100000
 580  002a               L22:
 581  002a 00030d41      	dc.l	200001
 582                     ; 221 ErrorStatus AWU_AutoLSICalibration(void)
 582                     ; 222 {
 583                     	switch	.text
 584  009c               _AWU_AutoLSICalibration:
 586  009c 5205          	subw	sp,#5
 587       00000005      OFST:	set	5
 590                     ; 224   u32 lsi_freq_hz = 0x0;
 592                     ; 225   u32 fmaster = 0x0;
 594                     ; 226   ErrorStatus status = ERROR;
 596                     ; 229   fmaster = CLK_GetClockFreq();
 598  009e cd0000        	call	_CLK_GetClockFreq
 600  00a1 96            	ldw	x,sp
 601  00a2 1c0002        	addw	x,#OFST-3
 602  00a5 cd0000        	call	c_rtol
 604                     ; 232   AWU->CSR |= AWU_CSR_MSR;
 606  00a8 721050f0      	bset	20720,#0
 607                     ; 235   lsi_freq_hz = TIM3_ComputeLsiClockFreq(fmaster);
 609  00ac 1e04          	ldw	x,(OFST-1,sp)
 610  00ae 89            	pushw	x
 611  00af 1e04          	ldw	x,(OFST-1,sp)
 612  00b1 89            	pushw	x
 613  00b2 cd0000        	call	_TIM3_ComputeLsiClockFreq
 615  00b5 5b04          	addw	sp,#4
 616  00b7 96            	ldw	x,sp
 617  00b8 1c0002        	addw	x,#OFST-3
 618  00bb cd0000        	call	c_rtol
 620                     ; 238   AWU->CSR &= (u8)(~AWU_CSR_MSR);
 622  00be 721150f0      	bres	20720,#0
 623                     ; 240   if ((lsi_freq_hz >= LSI_FREQUENCY_MIN) && (lsi_freq_hz <= LSI_FREQUENCY_MAX))
 625  00c2 96            	ldw	x,sp
 626  00c3 1c0002        	addw	x,#OFST-3
 627  00c6 cd0000        	call	c_ltor
 629  00c9 ae0026        	ldw	x,#L02
 630  00cc cd0000        	call	c_lcmp
 632  00cf 2520          	jrult	L512
 634  00d1 96            	ldw	x,sp
 635  00d2 1c0002        	addw	x,#OFST-3
 636  00d5 cd0000        	call	c_ltor
 638  00d8 ae002a        	ldw	x,#L22
 639  00db cd0000        	call	c_lcmp
 641  00de 2411          	jruge	L512
 642                     ; 243     AWU_LSICalibrationConfig(lsi_freq_hz);
 644  00e0 1e04          	ldw	x,(OFST-1,sp)
 645  00e2 89            	pushw	x
 646  00e3 1e04          	ldw	x,(OFST-1,sp)
 647  00e5 89            	pushw	x
 648  00e6 cd004c        	call	_AWU_LSICalibrationConfig
 650  00e9 5b04          	addw	sp,#4
 651                     ; 244     status = SUCCESS;
 653  00eb a601          	ld	a,#1
 654  00ed 6b01          	ld	(OFST-4,sp),a
 656  00ef 2002          	jra	L712
 657  00f1               L512:
 658                     ; 248     status = ERROR;
 660  00f1 0f01          	clr	(OFST-4,sp)
 661  00f3               L712:
 662                     ; 251   return status;
 664  00f3 7b01          	ld	a,(OFST-4,sp)
 667  00f5 5b05          	addw	sp,#5
 668  00f7 81            	ret
 691                     ; 269 void AWU_IdleModeEnable(void)
 691                     ; 270 {
 692                     	switch	.text
 693  00f8               _AWU_IdleModeEnable:
 697                     ; 273   AWU->CSR &= (u8)(~AWU_CSR_AWUEN);
 699  00f8 721950f0      	bres	20720,#4
 700                     ; 276   AWU->TBR = (u8)(~AWU_TBR_AWUTB);
 702  00fc 35f050f2      	mov	20722,#240
 703                     ; 278 }
 706  0100 81            	ret
 729                     ; 294 void AWU_ReInitCounter(void)
 729                     ; 295 {
 730                     	switch	.text
 731  0101               _AWU_ReInitCounter:
 735                     ; 296   AWU->CSR |= AWU_CSR_MR;
 737  0101 721250f0      	bset	20720,#1
 738                     ; 297 }
 741  0105 81            	ret
 785                     ; 317 FlagStatus AWU_GetFlagStatus(void)
 785                     ; 318 {
 786                     	switch	.text
 787  0106               _AWU_GetFlagStatus:
 791                     ; 319   return((FlagStatus)(((u8)(AWU->CSR & AWU_CSR_AWUF) == (u8)0x00) ? RESET : SET));
 793  0106 c650f0        	ld	a,20720
 794  0109 a520          	bcp	a,#32
 795  010b 2603          	jrne	L23
 796  010d 4f            	clr	a
 797  010e 2002          	jra	L43
 798  0110               L23:
 799  0110 a601          	ld	a,#1
 800  0112               L43:
 803  0112 81            	ret
 838                     	xdef	_TBR_Array
 839                     	xdef	_APR_Array
 840                     	xdef	_AWU_GetFlagStatus
 841                     	xdef	_AWU_ReInitCounter
 842                     	xdef	_AWU_IdleModeEnable
 843                     	xdef	_AWU_AutoLSICalibration
 844                     	xdef	_AWU_LSICalibrationConfig
 845                     	xdef	_AWU_Cmd
 846                     	xdef	_AWU_Init
 847                     	xdef	_AWU_DeInit
 848                     	xref	_CLK_GetClockFreq
 849                     	xref	_TIM3_ComputeLsiClockFreq
 850                     	xref.b	c_lreg
 851                     	xref.b	c_x
 870                     	xref	c_lcmp
 871                     	xref	c_rtol
 872                     	xref	c_imul
 873                     	xref	c_ludv
 874                     	xref	c_ltor
 875                     	end

⌨️ 快捷键说明

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