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

📄 stm8s_beep.ls

📁 STM8-触摸例程
💻 LS
字号:
   1                     ; C Compiler for STM8 (COSMIC Software)
   2                     ; Generator V4.2.8 - 03 Dec 2008
   3                     ; Optimizer V4.2.8 - 03 Dec 2008
  33                     ; 64 void BEEP_DeInit(void)
  33                     ; 65 {
  35                     	switch	.text
  36  0000               _BEEP_DeInit:
  40                     ; 66   BEEP->CSR = BEEP_CSR_RESET_VALUE;
  42  0000 351f50f3      	mov	20723,#31
  43                     ; 67 }
  46  0004 81            	ret	
 111                     ; 83 void BEEP_Init(BEEP_Frequency_TypeDef BEEP_Frequency)
 111                     ; 84 {
 112                     	switch	.text
 113  0005               _BEEP_Init:
 115       00000000      OFST:	set	0
 118                     ; 87   assert_param(IS_BEEP_FREQUENCY_OK(BEEP_Frequency));
 120                     ; 90   BEEP->CSR |= BEEP_CSR_BEEPEN;
 122  0005 721a50f3      	bset	20723,#5
 123  0009 88            	push	a
 124                     ; 93   if ((BEEP->CSR & BEEP_CSR_BEEPDIV) == BEEP_CSR_BEEPDIV)
 126  000a c650f3        	ld	a,20723
 127  000d a41f          	and	a,#31
 128  000f a11f          	cp	a,#31
 129  0011 2610          	jrne	L15
 130                     ; 95     BEEP->CSR &= (u8)(~BEEP_CSR_BEEPDIV); /* Clear bits */
 132  0013 c650f3        	ld	a,20723
 133  0016 a4e0          	and	a,#224
 134  0018 c750f3        	ld	20723,a
 135                     ; 96     BEEP->CSR |= BEEP_CALIBRATION_DEFAULT;
 137  001b c650f3        	ld	a,20723
 138  001e aa0b          	or	a,#11
 139  0020 c750f3        	ld	20723,a
 140  0023               L15:
 141                     ; 100   BEEP->CSR &= (u8)(~BEEP_CSR_BEEPSEL);
 143  0023 c650f3        	ld	a,20723
 144  0026 a43f          	and	a,#63
 145  0028 c750f3        	ld	20723,a
 146                     ; 101   BEEP->CSR |= (u8)(BEEP_Frequency);
 148  002b c650f3        	ld	a,20723
 149  002e 1a01          	or	a,(OFST+1,sp)
 150  0030 c750f3        	ld	20723,a
 151                     ; 103 }
 154  0033 84            	pop	a
 155  0034 81            	ret	
 210                     ; 118 void BEEP_Cmd(FunctionalState NewState)
 210                     ; 119 {
 211                     	switch	.text
 212  0035               _BEEP_Cmd:
 216                     ; 120   if (NewState != DISABLE)
 218  0035 4d            	tnz	a
 219  0036 2705          	jreq	L101
 220                     ; 123     BEEP->CSR |= BEEP_CSR_BEEPEN;
 222  0038 721a50f3      	bset	20723,#5
 225  003c 81            	ret	
 226  003d               L101:
 227                     ; 128     BEEP->CSR &= (u8)(~BEEP_CSR_BEEPEN);
 229  003d 721b50f3      	bres	20723,#5
 230                     ; 130 }
 233  0041 81            	ret	
 286                     .const:	section	.text
 287  0000               L41:
 288  0000 000003e8      	dc.l	1000
 289                     ; 157 void BEEP_LSICalibrationConfig(u32 LSIFreqHz)
 289                     ; 158 {
 290                     	switch	.text
 291  0042               _BEEP_LSICalibrationConfig:
 293  0042 5206          	subw	sp,#6
 294       00000006      OFST:	set	6
 297                     ; 164   assert_param(IS_LSI_FREQUENCY_OK(LSIFreqHz));
 299                     ; 166   lsifreqkhz = (u16)(LSIFreqHz / 1000); /* Converts value in kHz */
 301  0044 96            	ldw	x,sp
 302  0045 1c0009        	addw	x,#OFST+3
 303  0048 cd0000        	call	c_ltor
 305  004b ae0000        	ldw	x,#L41
 306  004e cd0000        	call	c_ludv
 308  0051 be02          	ldw	x,c_lreg+2
 309  0053 1f03          	ldw	(OFST-3,sp),x
 310                     ; 170   BEEP->CSR &= (u8)(~BEEP_CSR_BEEPDIV); /* Clear bits */
 312  0055 c650f3        	ld	a,20723
 313  0058 a4e0          	and	a,#224
 314  005a c750f3        	ld	20723,a
 315                     ; 172   A = (u16)(lsifreqkhz >> 3U); /* Division by 8, keep integer part only */
 317  005d 54            	srlw	x
 318  005e 54            	srlw	x
 319  005f 54            	srlw	x
 320  0060 1f05          	ldw	(OFST-1,sp),x
 321                     ; 174   if ((8U * A) >= ((lsifreqkhz - (8U * A)) * (1U + (2U * A))))
 323  0062 58            	sllw	x
 324  0063 58            	sllw	x
 325  0064 58            	sllw	x
 326  0065 1f01          	ldw	(OFST-5,sp),x
 327  0067 1e03          	ldw	x,(OFST-3,sp)
 328  0069 72f001        	subw	x,(OFST-5,sp)
 329  006c 1605          	ldw	y,(OFST-1,sp)
 330  006e 9058          	sllw	y
 331  0070 905c          	incw	y
 332  0072 cd0000        	call	c_imul
 334  0075 1605          	ldw	y,(OFST-1,sp)
 335  0077 9058          	sllw	y
 336  0079 9058          	sllw	y
 337  007b bf01          	ldw	c_x+1,x
 338  007d 9058          	sllw	y
 339  007f 90b301        	cpw	y,c_x+1
 340  0082 7b06          	ld	a,(OFST+0,sp)
 341  0084 2504          	jrult	L331
 342                     ; 176     BEEP->CSR |= (u8)(A - 2U);
 344  0086 a002          	sub	a,#2
 346  0088 2001          	jra	L531
 347  008a               L331:
 348                     ; 180     BEEP->CSR |= (u8)(A - 1U);
 350  008a 4a            	dec	a
 351  008b               L531:
 352  008b ca50f3        	or	a,20723
 353  008e c750f3        	ld	20723,a
 354                     ; 184   AWU->CSR |= AWU_CSR_MR;
 356                     ; 186 }
 359  0091 5b06          	addw	sp,#6
 360  0093 721250f0      	bset	20720,#1
 361  0097 81            	ret	
 439                     	switch	.const
 440  0004               L42:
 441  0004 000186a0      	dc.l	100000
 442  0008               L62:
 443  0008 00030d41      	dc.l	200001
 444                     ; 204 ErrorStatus BEEP_AutoLSICalibration(void)
 444                     ; 205 {
 445                     	switch	.text
 446  0098               _BEEP_AutoLSICalibration:
 448  0098 5205          	subw	sp,#5
 449       00000005      OFST:	set	5
 452                     ; 211   fmaster = CLK_GetClockFreq();
 454  009a cd0000        	call	_CLK_GetClockFreq
 456  009d 96            	ldw	x,sp
 457  009e 1c0002        	addw	x,#OFST-3
 458  00a1 cd0000        	call	c_rtol
 460                     ; 214   AWU->CSR |= AWU_CSR_MSR;
 462  00a4 721050f0      	bset	20720,#0
 463                     ; 217   lsi_freq_hz = TIM3_ComputeLsiClockFreq(fmaster);
 465  00a8 1e04          	ldw	x,(OFST-1,sp)
 466  00aa 89            	pushw	x
 467  00ab 1e04          	ldw	x,(OFST-1,sp)
 468  00ad 89            	pushw	x
 469  00ae cd0000        	call	_TIM3_ComputeLsiClockFreq
 471  00b1 5b04          	addw	sp,#4
 472  00b3 96            	ldw	x,sp
 473  00b4 1c0002        	addw	x,#OFST-3
 474  00b7 cd0000        	call	c_rtol
 476                     ; 220   AWU->CSR &= (u8)(~AWU_CSR_MSR);
 478  00ba 721150f0      	bres	20720,#0
 479                     ; 222   if ((lsi_freq_hz >= LSI_FREQUENCY_MIN) && (lsi_freq_hz <= LSI_FREQUENCY_MAX))
 481  00be 96            	ldw	x,sp
 482  00bf 1c0002        	addw	x,#OFST-3
 483  00c2 cd0000        	call	c_ltor
 485  00c5 ae0004        	ldw	x,#L42
 486  00c8 cd0000        	call	c_lcmp
 488  00cb 251e          	jrult	L571
 490  00cd 96            	ldw	x,sp
 491  00ce 1c0002        	addw	x,#OFST-3
 492  00d1 cd0000        	call	c_ltor
 494  00d4 ae0008        	ldw	x,#L62
 495  00d7 cd0000        	call	c_lcmp
 497  00da 240f          	jruge	L571
 498                     ; 225     BEEP_LSICalibrationConfig(lsi_freq_hz);
 500  00dc 1e04          	ldw	x,(OFST-1,sp)
 501  00de 89            	pushw	x
 502  00df 1e04          	ldw	x,(OFST-1,sp)
 503  00e1 89            	pushw	x
 504  00e2 cd0042        	call	_BEEP_LSICalibrationConfig
 506  00e5 5b04          	addw	sp,#4
 507                     ; 226     status = SUCCESS;
 509  00e7 a601          	ld	a,#1
 511  00e9 2001          	jra	L771
 512  00eb               L571:
 513                     ; 230     status = ERROR;
 515  00eb 4f            	clr	a
 516  00ec               L771:
 517                     ; 233   return status;
 521  00ec 5b05          	addw	sp,#5
 522  00ee 81            	ret	
 535                     	xdef	_BEEP_AutoLSICalibration
 536                     	xdef	_BEEP_LSICalibrationConfig
 537                     	xdef	_BEEP_Cmd
 538                     	xdef	_BEEP_Init
 539                     	xdef	_BEEP_DeInit
 540                     	xref	_CLK_GetClockFreq
 541                     	xref	_TIM3_ComputeLsiClockFreq
 542                     	xref.b	c_lreg
 543                     	xref.b	c_x
 562                     	xref	c_lcmp
 563                     	xref	c_rtol
 564                     	xref	c_imul
 565                     	xref	c_ludv
 566                     	xref	c_ltor
 567                     	end

⌨️ 快捷键说明

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