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

📄 adc.ls

📁 该程序是ST7MC驱动BLDC120
💻 LS
字号:
   1                     ; C Compiler for ST7 (COSMIC Software)
   2                     ; Generator V4.4a - 17 Dec 2001
   3                     ; Optimizer V4.2g - 21 Dec 2001
  65                     ; 44 u16 ADC_Get_10bits(u8 Channel)		
  65                     ; 45 {
  66                     .text:	section	.text,new
  68                     	xref.b	_ADC_Get_10bits$L
  69  0000               _ADC_Get_10bits:
  71  0000 b700          	ld	_ADC_Get_10bits$L,a
  73                     ; 49 result = 0;	
  75  0002 3ffe          	clr	_ADC_Get_10bits$L-2
  76  0004 3fff          	clr	_ADC_Get_10bits$L-1
  77                     ; 51 ADCDRH;	// clear EOC bit in case of...
  79  0006 b600          	ld	a,_ADCDRH
  80                     ; 54 while (!ValBit(ADCCSR,EOC));	// wait till end of conversion
  83  0008 b600          	ld	a,_ADC_Get_10bits$L
  84  000a b700          	ld	_ADCCSR,a
  86  000c               L34:
  89  000c 0f00fd        	btjf	_ADCCSR,#7,L34
  90                     ; 55 ADCDRH;                       // and ignore 1st result
  92  000f b600          	ld	a,_ADCDRH
  93                     ; 57 for (i=0;i<=7;i++)      // take 8 samples
  95  0011 3ffd          	clr	_ADC_Get_10bits$L-3
  96  0013               L75:
  97                     ; 59 	while (!ValBit(ADCCSR,EOC));	// wait till end of conversion
  99  0013 0f00fd        	btjf	_ADCCSR,#7,L75
 100                     ; 60 	result += ADCDRL;
 102  0016 b600          	ld	a,_ADCDRL
 103  0018 bbff          	add	a,_ADC_Get_10bits$L-1
 104  001a b7ff          	ld	_ADC_Get_10bits$L-1,a
 105  001c 2402          	jrnc	L6
 106  001e 3cfe          	inc	_ADC_Get_10bits$L-2
 107  0020               L6:
 108                     ; 61 	result += (u16)(ADCDRH << 2);	// clear EOC bit
 110  0020 b600          	ld	a,_ADCDRH
 111  0022 ae04          	ld	x,#4
 112  0024 42            	mul	x,a
 113  0025 b7fc          	ld	_ADC_Get_10bits$L-4,a
 114  0027 bffb          	ld	_ADC_Get_10bits$L-5,x
 115  0029 b6ff          	ld	a,_ADC_Get_10bits$L-1
 116  002b bbfc          	add	a,_ADC_Get_10bits$L-4
 117  002d b7ff          	ld	_ADC_Get_10bits$L-1,a
 118  002f b6fe          	ld	a,_ADC_Get_10bits$L-2
 119  0031 b9fb          	adc	a,_ADC_Get_10bits$L-5
 120  0033 b7fe          	ld	_ADC_Get_10bits$L-2,a
 121                     ; 57 for (i=0;i<=7;i++)      // take 8 samples
 123  0035 3cfd          	inc	_ADC_Get_10bits$L-3
 126  0037 b6fd          	ld	a,_ADC_Get_10bits$L-3
 127  0039 a108          	cp	a,#8
 128  003b 25d6          	jrult	L75
 129                     ; 64 ClrBit(ADCCSR,ADON);	// shutdown ADC peripheral
 131  003d 1900          	bres	_ADCCSR,#4
 132                     ; 66 result = result >> 3;	// div/8 -> smooth result
 134  003f 34fe          	srl	_ADC_Get_10bits$L-2
 135  0041 36ff          	rrc	_ADC_Get_10bits$L-1
 136  0043 34fe          	srl	_ADC_Get_10bits$L-2
 137  0045 36ff          	rrc	_ADC_Get_10bits$L-1
 138  0047 34fe          	srl	_ADC_Get_10bits$L-2
 139  0049 36ff          	rrc	_ADC_Get_10bits$L-1
 140                     ; 67 return (result);
 142  004b b6ff          	ld	a,_ADC_Get_10bits$L-1
 143  004d befe          	ld	x,_ADC_Get_10bits$L-2
 146  004f 81            	ret	
 199                     ; 79 u8 ADC_Get_8bits(u8 Channel)	
 199                     ; 80 {
 200                     .text:	section	.text,new
 202                     	xref.b	_ADC_Get_8bits$L
 203  0000               _ADC_Get_8bits:
 205  0000 b700          	ld	_ADC_Get_8bits$L,a
 207                     ; 84 result = 0;	
 209  0002 3ffd          	clr	_ADC_Get_8bits$L-3
 210  0004 3ffe          	clr	_ADC_Get_8bits$L-2
 211                     ; 86 ADCDRH;	// clear EOC bit in case of...
 213  0006 b600          	ld	a,_ADCDRH
 214                     ; 89 while (!ValBit(ADCCSR,EOC));	// wait till end of conversion
 217  0008 b600          	ld	a,_ADC_Get_8bits$L
 218  000a b700          	ld	_ADCCSR,a
 220  000c               L511:
 223  000c 0f00fd        	btjf	_ADCCSR,#7,L511
 224                     ; 90 ADCDRH;                       // and ignore 1st result
 226  000f b600          	ld	a,_ADCDRH
 227                     ; 92 for (i=0;i<=7;i++)      // take 8 samples
 229  0011 3fff          	clr	_ADC_Get_8bits$L-1
 230  0013               L131:
 231                     ; 94 	while (!ValBit(ADCCSR,EOC));	// wait till end of conversion
 233  0013 0f00fd        	btjf	_ADCCSR,#7,L131
 234                     ; 95 	result += ADCDRH;	// clear EOC bit
 236  0016 b600          	ld	a,_ADCDRH
 237  0018 bbfe          	add	a,_ADC_Get_8bits$L-2
 238  001a b7fe          	ld	_ADC_Get_8bits$L-2,a
 239  001c 2402          	jrnc	L21
 240  001e 3cfd          	inc	_ADC_Get_8bits$L-3
 241  0020               L21:
 242                     ; 92 for (i=0;i<=7;i++)      // take 8 samples
 244  0020 3cff          	inc	_ADC_Get_8bits$L-1
 247  0022 b6ff          	ld	a,_ADC_Get_8bits$L-1
 248  0024 a108          	cp	a,#8
 249  0026 25eb          	jrult	L131
 250                     ; 98 ClrBit(ADCCSR,ADON);	// shutdown ADC peripheral
 252  0028 1900          	bres	_ADCCSR,#4
 253                     ; 100 result = result >> 3;	// div/8 -> smooth result
 255  002a 34fd          	srl	_ADC_Get_8bits$L-3
 256  002c 36fe          	rrc	_ADC_Get_8bits$L-2
 257  002e 34fd          	srl	_ADC_Get_8bits$L-3
 258  0030 36fe          	rrc	_ADC_Get_8bits$L-2
 259  0032 34fd          	srl	_ADC_Get_8bits$L-3
 260  0034 36fe          	rrc	_ADC_Get_8bits$L-2
 261                     ; 101 return ((u8)result);
 263  0036 b6fe          	ld	a,_ADC_Get_8bits$L-2
 266  0038 81            	ret	
 289                     ; 112 u8 Get_RV1(void)
 289                     ; 113 {
 290                     .text:	section	.text,new
 291  0000               _Get_RV1:
 294                     ; 114 return(ADC_Get_8bits(CONVERT_AIN13));
 296  0000 a61d          	ld	a,#29
 300  0002 cc0000        	jp	_ADC_Get_8bits
 323                     ; 117 u8 Get_RV2(void)
 323                     ; 118 {
 324                     .text:	section	.text,new
 325  0000               _Get_RV2:
 328                     ; 119 return(ADC_Get_8bits(CONVERT_AIN11));
 330  0000 a61b          	ld	a,#27
 334  0002 cc0000        	jp	_ADC_Get_8bits
 357                     ; 122 u8 Get_RV3(void)
 357                     ; 123 {
 358                     .text:	section	.text,new
 359  0000               _Get_RV3:
 362                     ; 124 return(ADC_Get_8bits(CONVERT_AIN7));
 364  0000 a617          	ld	a,#23
 368  0002 cc0000        	jp	_ADC_Get_8bits
 392                     ; 138 BOOL Get_Temperature(void)
 392                     ; 139 {
 393                     .text:	section	.text,new
 394  0000               _Get_Temperature:
 397                     ; 140 if (ADC_Get_8bits(CONVERT_AIN0) >= NTC_THRESHOLD)    return(TRUE);
 399  0000 a610          	ld	a,#16
 400  0002 cd0000        	call	_ADC_Get_8bits
 402  0005 a16e          	cp	a,#110
 403  0007 2503          	jrult	L571
 406  0009 a601          	ld	a,#1
 409  000b 81            	ret	
 410  000c               L571:
 411                     ; 141 else if ( (ADC_Get_8bits(CONVERT_AIN0) >= (NTC_THRESHOLD - NTC_HYSTERIS)) // wait for the temperature
 411                     ; 142             && ValBit(Power_Motor_Status,OverHeat) ) return(TRUE);        // to go back to normal operation
 413  000c a610          	ld	a,#16
 414  000e cd0000        	call	_ADC_Get_8bits
 416  0011 a166          	cp	a,#102
 417  0013 250a          	jrult	L102
 419  0015 c60000        	ld	a,_Power_Motor_Status
 420  0018 a501          	bcp	a,#1
 421  001a 2703          	jreq	L102
 424  001c a601          	ld	a,#1
 427  001e 81            	ret	
 428  001f               L102:
 429                     ; 143 else return(FALSE);
 431  001f 4f            	clr	a
 434  0020 81            	ret	
 458                     ; 158 BOOL Get_HVBus(void)
 458                     ; 159 {
 459                     .text:	section	.text,new
 460  0000               _Get_HVBus:
 463                     ; 160 if (ADC_Get_10bits(CONVERT_AIN1) >= HVBUS_THRESHOLD)    return(TRUE);
 465  0000 a611          	ld	a,#17
 466  0002 cd0000        	call	_ADC_Get_10bits
 468  0005 a0e8          	sub	a,#232
 469  0007 9f            	ld	a,x
 470  0008 a203          	sbc	a,#3
 471  000a 2503          	jrult	L512
 474  000c a601          	ld	a,#1
 477  000e 81            	ret	
 478  000f               L512:
 479                     ; 161 else if ( (ADC_Get_10bits(CONVERT_AIN1) >= (HVBUS_THRESHOLD - HVBUS_HYSTERIS)) // wait for the voltage
 479                     ; 162             && ValBit(Power_Motor_Status,OverVoltage) ) return(TRUE);         // to go back to normal operation
 481  000f a611          	ld	a,#17
 482  0011 cd0000        	call	_ADC_Get_10bits
 484  0014 a0d5          	sub	a,#213
 485  0016 9f            	ld	a,x
 486  0017 a203          	sbc	a,#3
 487  0019 250a          	jrult	L122
 489  001b c60000        	ld	a,_Power_Motor_Status
 490  001e a504          	bcp	a,#4
 491  0020 2703          	jreq	L122
 494  0022 a601          	ld	a,#1
 497  0024 81            	ret	
 498  0025               L122:
 499                     ; 163 else return(FALSE);
 501  0025 4f            	clr	a
 504  0026 81            	ret	
 516                     	xref	_Power_Motor_Status
 517                     	xdef	_Get_HVBus
 518                     	xdef	_Get_Temperature
 519                     	xdef	_Get_RV3
 520                     	xdef	_Get_RV2
 521                     	xdef	_Get_RV1
 522                     	xdef	_ADC_Get_8bits
 523                     	xdef	_ADC_Get_10bits
 524                     	xref.b	_ADCDRL
 525                     	xref.b	_ADCDRH
 526                     	xref.b	_ADCCSR
 545                     	end

⌨️ 快捷键说明

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