   1                     ; C Compiler for STM8 (COSMIC Software)
   2                     ; Parser V4.8.32 - 23 Mar 2010
   3                     ; Generator V4.3.4 - 23 Mar 2010
  17                     	switch	.data
  18  0000               _bMiddleWaitTimerID:
  19  0000 ff            	dc.b	255
  20  0001               _bMidWait:
  21  0001 00            	dc.b	0
  66                     ; 10 void ConvertDown1(void *p)
  66                     ; 11 {
  68                     .text:	section	.text,new
  69  0000               _ConvertDown1:
  73                     ; 12 		UNLockAllMotor();
  75  0000 cd0000        	call	_UNLockAllMotor
  77                     ; 13 		EnableBrakPower(TRUE); 
  79  0003 a601          	ld	a,#1
  80  0005 cd0000        	call	_EnableBrakPower
  82                     ; 14 		StartDC2ACConvert(); 
  84  0008 cd0000        	call	_StartDC2ACConvert
  86                     ; 15 		ActiveTask(TASK_BREAK,DC_DN_PR);//
  88  000b ae0032        	ldw	x,#50
  89  000e 89            	pushw	x
  90  000f ae0000        	ldw	x,#0
  91  0012 89            	pushw	x
  92  0013 a612          	ld	a,#18
  93  0015 cd0000        	call	_ActiveTask
  95  0018 5b04          	addw	sp,#4
  96                     ; 16 }
  99  001a 81            	ret
 137                     ; 17 void ConvertDown(char bEnable)
 137                     ; 18 {
 138                     .text:	section	.text,new
 139  0000               _ConvertDown:
 143                     ; 19 	if(bEnable)
 145  0000 4d            	tnz	a
 146  0001 271c          	jreq	L34
 147                     ; 21 		UNLockAllMotor();
 149  0003 cd0000        	call	_UNLockAllMotor
 151                     ; 22 		EnableBrakPower(TRUE); 
 153  0006 a601          	ld	a,#1
 154  0008 cd0000        	call	_EnableBrakPower
 156                     ; 23 		StartDC2ACConvert(); 
 158  000b cd0000        	call	_StartDC2ACConvert
 160                     ; 24 		ActiveTask(TASK_BREAK,DC_DN_PR);//
 162  000e ae0032        	ldw	x,#50
 163  0011 89            	pushw	x
 164  0012 ae0000        	ldw	x,#0
 165  0015 89            	pushw	x
 166  0016 a612          	ld	a,#18
 167  0018 cd0000        	call	_ActiveTask
 169  001b 5b04          	addw	sp,#4
 171  001d 200d          	jra	L54
 172  001f               L34:
 173                     ; 28 		EnableBrakPower(FALSE); 
 175  001f 4f            	clr	a
 176  0020 cd0000        	call	_EnableBrakPower
 178                     ; 29 		SuspendTask(TASK_BREAK);//
 180  0023 a612          	ld	a,#18
 181  0025 cd0000        	call	_SuspendTask
 183                     ; 30 		StopDC2ACConvert(0);
 185  0028 5f            	clrw	x
 186  0029 cd0000        	call	_StopDC2ACConvert
 188  002c               L54:
 189                     ; 32 }
 192  002c 81            	ret
 218                     ; 34 void DCManualCtrl(void)
 218                     ; 35 {  
 219                     .text:	section	.text,new
 220  0000               _DCManualCtrl:
 224                     ; 36 	switch(gcKey)
 226  0000 c60000        	ld	a,_gcKey
 228                     ; 45 			break;
 229  0003 4a            	dec	a
 230  0004 270b          	jreq	L15
 231  0006 a003          	sub	a,#3
 232  0008 260b          	jrne	L35
 233                     ; 38 		case KEY_DOWN:  
 233                     ; 39 			ConvertDown(1);
 235  000a a601          	ld	a,#1
 236  000c cd0000        	call	_ConvertDown
 238                     ; 40 			break;
 240  000f 2005          	jra	L76
 241  0011               L15:
 242                     ; 41 		case KEY_STOP:
 242                     ; 42 			ConvertDown(0);
 244  0011 4f            	clr	a
 245  0012 cd0000        	call	_ConvertDown
 247  0015               L35:
 248                     ; 44 			nop();
 251  0015 9d            nop
 253                     ; 45 			break;
 256  0016               L76:
 257                     ; 47 }
 260  0016 81            	ret
 292                     ; 49 void ACManualCtrl(void)
 292                     ; 50 {
 293                     .text:	section	.text,new
 294  0000               _ACManualCtrl:
 298                     ; 55 			switch(gcKey&KEY_HANDCTRL)	 //(KEY_UP|KEY_DOWN|KEY_STOP)
 300  0000 c60000        	ld	a,_gcKey
 301  0003 a40f          	and	a,#15
 303                     ; 87 					break;	    
 304  0005 4a            	dec	a
 305  0006 2765          	jreq	L57
 306  0008 4a            	dec	a
 307  0009 2706          	jreq	L17
 308  000b a002          	sub	a,#2
 309  000d 272f          	jreq	L37
 310  000f 205f          	jra	L111
 311  0011               L17:
 312                     ; 57 				case KEY_UP:
 312                     ; 58 					if(IED.cMoving==1)
 314  0011 c60002        	ld	a,_IED+2
 315  0014 a101          	cp	a,#1
 316  0016 2620          	jrne	L311
 317                     ; 60 						if(IED.Direction!=MOTOR_UP)
 319  0018 725d0011      	tnz	_IED+17
 320  001c 2752          	jreq	L111
 321                     ; 62 							StopMotor();
 323  001e cd0000        	call	_StopMotor
 325                     ; 63 							StartTimer(TIMER_MODE_ONCEROUTINE,100L,MotorUp,0);
 327  0021 5f            	clrw	x
 328  0022 89            	pushw	x
 329  0023 ae0000        	ldw	x,#_MotorUp
 330  0026 89            	pushw	x
 331  0027 ae0064        	ldw	x,#100
 332  002a 89            	pushw	x
 333  002b ae0000        	ldw	x,#0
 334  002e 89            	pushw	x
 335  002f a601          	ld	a,#1
 336  0031 cd0000        	call	_StartTimer
 338  0034 5b08          	addw	sp,#8
 339  0036 2038          	jra	L111
 340  0038               L311:
 341                     ; 68 						MotorUp(0);
 343  0038 5f            	clrw	x
 344  0039 cd0000        	call	_MotorUp
 346  003c 2032          	jra	L111
 347  003e               L37:
 348                     ; 71 				case KEY_DOWN: 
 348                     ; 72 					if(IED.cMoving==1)
 350  003e c60002        	ld	a,_IED+2
 351  0041 a101          	cp	a,#1
 352  0043 2621          	jrne	L121
 353                     ; 74 						if(IED.Direction!=MOTOR_DOWN)
 355  0045 c60011        	ld	a,_IED+17
 356  0048 a101          	cp	a,#1
 357  004a 2724          	jreq	L111
 358                     ; 76 							StopMotor();
 360  004c cd0000        	call	_StopMotor
 362                     ; 77 							StartTimer(TIMER_MODE_ONCEROUTINE,100L,MotorDown,0); 
 364  004f 5f            	clrw	x
 365  0050 89            	pushw	x
 366  0051 ae0000        	ldw	x,#_MotorDown
 367  0054 89            	pushw	x
 368  0055 ae0064        	ldw	x,#100
 369  0058 89            	pushw	x
 370  0059 ae0000        	ldw	x,#0
 371  005c 89            	pushw	x
 372  005d a601          	ld	a,#1
 373  005f cd0000        	call	_StartTimer
 375  0062 5b08          	addw	sp,#8
 376  0064 200a          	jra	L111
 377  0066               L121:
 378                     ; 82 						MovMotor(POS_BOT);//启动全降信号
 380  0066 a602          	ld	a,#2
 381  0068 cd0000        	call	_MovMotor
 383  006b 2003          	jra	L111
 384  006d               L57:
 385                     ; 85 				case KEY_STOP:
 385                     ; 86 					StopMotor();
 387  006d cd0000        	call	_StopMotor
 389                     ; 87 					break;	    
 391  0070               L111:
 392                     ; 93 }  
 395  0070 81            	ret
 419                     ; 95 void checkID(void) 
 419                     ; 96 {
 420                     .text:	section	.text,new
 421  0000               _checkID:
 425                     ; 97 	IED.nId = IED.nId>MAXID?1:IED.nId;
 427  0000 c60000        	ld	a,_IED
 428  0003 a115          	cp	a,#21
 429  0005 2504          	jrult	L61
 430  0007 a601          	ld	a,#1
 431  0009 2003          	jra	L02
 432  000b               L61:
 433  000b c60000        	ld	a,_IED
 434  000e               L02:
 435  000e c70000        	ld	_IED,a
 436                     ; 98 	IED.nId = (IED.nId==0)?MAXID:IED.nId;
 438  0011 725d0000      	tnz	_IED
 439  0015 2604          	jrne	L22
 440  0017 a614          	ld	a,#20
 441  0019 2003          	jra	L42
 442  001b               L22:
 443  001b c60000        	ld	a,_IED
 444  001e               L42:
 445  001e c70000        	ld	_IED,a
 446                     ; 99 }
 449  0021 81            	ret
 476                     ; 101 void SetID(void)
 476                     ; 102 {
 477                     .text:	section	.text,new
 478  0000               _SetID:
 482                     ; 103 	switch(gcKey)
 484  0000 c60000        	ld	a,_gcKey
 486                     ; 113 			break;
 487  0003 4a            	dec	a
 488  0004 2715          	jreq	L341
 489  0006 4a            	dec	a
 490  0007 2706          	jreq	L731
 491  0009 a002          	sub	a,#2
 492  000b 2708          	jreq	L141
 493  000d 201a          	jra	L751
 494  000f               L731:
 495                     ; 105 		case KEY_UP: 
 495                     ; 106 			IED.nId++;
 497  000f 725c0000      	inc	_IED
 498                     ; 107 			break;
 500  0013 2014          	jra	L751
 501  0015               L141:
 502                     ; 108 		case KEY_DOWN: 
 502                     ; 109 			IED.nId--;
 504  0015 725a0000      	dec	_IED
 505                     ; 110 			break;
 507  0019 200e          	jra	L751
 508  001b               L341:
 509                     ; 111 		case KEY_STOP: 
 509                     ; 112 			EEWriteStruct(&IED.nId ,sizeof(IED.nId)/sizeof(char),0); 
 511  001b 5f            	clrw	x
 512  001c 89            	pushw	x
 513  001d ae0001        	ldw	x,#1
 514  0020 89            	pushw	x
 515  0021 ae0000        	ldw	x,#_IED
 516  0024 cd0000        	call	_EEWriteStruct
 518  0027 5b04          	addw	sp,#4
 519                     ; 113 			break;
 521  0029               L751:
 522                     ; 115 	checkID();
 525  0029 cd0000        	call	_checkID
 527                     ; 116 }
 530  002c 81            	ret
 584                     .const:	section	.text
 585  0000               L63:
 586  0000 00002653      	dc.l	9811
 587  0004               L04:
 588  0004 0000006e      	dc.l	110
 590                     ; 123 void ManualCtrl(void)
 590                     ; 124 {	
 591                     .text:	section	.text,new
 592  0000               _ManualCtrl:
 594  0000 88            	push	a
 595       00000001      OFST:	set	1
 598                     ; 125 	unsigned char b_lock = (LockTime==0); //COMM?
 600  0001 ce0000        	ldw	x,_LockTime
 601  0004 2604          	jrne	L23
 602  0006 a601          	ld	a,#1
 603  0008 2001          	jra	L43
 604  000a               L23:
 605  000a 4f            	clr	a
 606  000b               L43:
 607  000b 6b01          	ld	(OFST+0,sp),a
 608                     ; 126 	gcKey=GetKey(); 
 610  000d cd0000        	call	_GetKey
 612  0010 c70000        	ld	_gcKey,a
 613                     ; 127 	checkSetIDMode();
 615  0013 cd0000        	call	_checkSetIDMode
 617                     ; 128 	if(Debug_time==1)
 619  0016 c60000        	ld	a,_Debug_time
 620  0019 a101          	cp	a,#1
 621  001b 265e          	jrne	L571
 622                     ; 130 		if(gcKey==KEY_UP)
 624  001d c60000        	ld	a,_gcKey
 625  0020 a102          	cp	a,#2
 626  0022 2617          	jrne	L771
 627                     ; 132 		 if(IED.MidTimeWait<=9810)
 629  0024 9c            	rvf
 630  0025 ae0014        	ldw	x,#_IED+20
 631  0028 cd0000        	call	c_ltor
 633  002b ae0000        	ldw	x,#L63
 634  002e cd0000        	call	c_lcmp
 636  0031 2e08          	jrsge	L771
 637                     ; 134 			IED.MidTimeWait+=100;//5S
 639  0033 ae0014        	ldw	x,#_IED+20
 640  0036 a664          	ld	a,#100
 641  0038 cd0000        	call	c_lgadc
 643  003b               L771:
 644                     ; 137 		if(gcKey==KEY_DOWN)
 646  003b c60000        	ld	a,_gcKey
 647  003e a104          	cp	a,#4
 648  0040 2617          	jrne	L302
 649                     ; 139 		  if(IED.MidTimeWait>=110)
 651  0042 9c            	rvf
 652  0043 ae0014        	ldw	x,#_IED+20
 653  0046 cd0000        	call	c_ltor
 655  0049 ae0004        	ldw	x,#L04
 656  004c cd0000        	call	c_lcmp
 658  004f 2f08          	jrslt	L302
 659                     ; 141 		    IED.MidTimeWait-=100;//5S
 661  0051 ae0014        	ldw	x,#_IED+20
 662  0054 a664          	ld	a,#100
 663  0056 cd0000        	call	c_lgsbc
 665  0059               L302:
 666                     ; 144 		if(gcKey==KEY_STOP)
 668  0059 c60000        	ld	a,_gcKey
 669  005c a101          	cp	a,#1
 670  005e 2703          	jreq	L24
 671  0060 cc0118        	jp	L112
 672  0063               L24:
 673                     ; 146 		  Debug_time=0;
 675  0063 725f0000      	clr	_Debug_time
 676                     ; 147 			EEWriteStruct(&IED.MidTimeWait ,sizeof(IED.MidTimeWait)/sizeof(char),1); 
 678  0067 ae0001        	ldw	x,#1
 679  006a 89            	pushw	x
 680  006b ae0004        	ldw	x,#4
 681  006e 89            	pushw	x
 682  006f ae0014        	ldw	x,#_IED+20
 683  0072 cd0000        	call	_EEWriteStruct
 685  0075 5b04          	addw	sp,#4
 686  0077 ac180118      	jpf	L112
 687  007b               L571:
 688                     ; 152 	if(gcKey==KEY_MUTE)
 690  007b c60000        	ld	a,_gcKey
 691  007e a108          	cp	a,#8
 692  0080 2603          	jrne	L312
 693                     ; 154 		MuteError();
 695  0082 cd0000        	call	_MuteError
 697  0085               L312:
 698                     ; 156 	if(gcKey==KEY_STOPWARN)
 700  0085 c60000        	ld	a,_gcKey
 701  0088 a103          	cp	a,#3
 702  008a 261b          	jrne	L512
 703                     ; 158 		IED.b_warning=0;
 705  008c 725f0003      	clr	_IED+3
 706                     ; 159 		 Warning_flag=0;
 708  0090 725f0000      	clr	_Warning_flag
 709                     ; 160 		StopWarning();
 711  0094 cd0000        	call	_StopWarning
 713                     ; 161 			StopMotor();
 715  0097 cd0000        	call	_StopMotor
 717                     ; 162 			StopWarning_flag=1;
 719  009a 35010000      	mov	_StopWarning_flag,#1
 720                     ; 163 	GPIO_WriteLow(GPIOA, GPIO_PIN_2);//关闭烟温电源
 722  009e 4b04          	push	#4
 723  00a0 ae5000        	ldw	x,#20480
 724  00a3 cd0000        	call	_GPIO_WriteLow
 726  00a6 84            	pop	a
 727  00a7               L512:
 728                     ; 165  if(IED.cMoving==1)
 730  00a7 c60002        	ld	a,_IED+2
 731  00aa a101          	cp	a,#1
 732  00ac 263a          	jrne	L712
 733                     ; 167 		if((pre_b_lock==0)&&(b_lock==1))
 735  00ae 725d0001      	tnz	_pre_b_lock
 736  00b2 2634          	jrne	L712
 738  00b4 7b01          	ld	a,(OFST+0,sp)
 739  00b6 a101          	cp	a,#1
 740  00b8 262e          	jrne	L712
 741                     ; 169 			if((Warning_flag==1)&&(IED.Direction==MOTOR_DOWN))
 743  00ba c60000        	ld	a,_Warning_flag
 744  00bd a101          	cp	a,#1
 745  00bf 2624          	jrne	L322
 747  00c1 c60011        	ld	a,_IED+17
 748  00c4 a101          	cp	a,#1
 749  00c6 261d          	jrne	L322
 750                     ; 171 					StopMotor();
 752  00c8 cd0000        	call	_StopMotor
 754                     ; 172 					UNLockAllMotor();
 756  00cb cd0000        	call	_UNLockAllMotor
 758                     ; 173 			    StartTimer(TIMER_MODE_ONCEROUTINE,10UL, ConvertDown1,0);
 760  00ce 5f            	clrw	x
 761  00cf 89            	pushw	x
 762  00d0 ae0000        	ldw	x,#_ConvertDown1
 763  00d3 89            	pushw	x
 764  00d4 ae000a        	ldw	x,#10
 765  00d7 89            	pushw	x
 766  00d8 ae0000        	ldw	x,#0
 767  00db 89            	pushw	x
 768  00dc a601          	ld	a,#1
 769  00de cd0000        	call	_StartTimer
 771  00e1 5b08          	addw	sp,#8
 773  00e3 2003          	jra	L712
 774  00e5               L322:
 775                     ; 178 					StopMotor();
 777  00e5 cd0000        	call	_StopMotor
 779  00e8               L712:
 780                     ; 182 	if(ID_SET)
 782  00e8 c60004        	ld	a,_SPIIO+4
 783  00eb a501          	bcp	a,#1
 784  00ed 2705          	jreq	L722
 785                     ; 184 		SetID();
 787  00ef cd0000        	call	_SetID
 790  00f2 2019          	jra	L132
 791  00f4               L722:
 792                     ; 188 		if(b_lock)		  //没有锁定,可以手动操控
 794  00f4 0d01          	tnz	(OFST+0,sp)
 795  00f6 2710          	jreq	L332
 796                     ; 190 			if((IED.Err&(MAIN_POWER_ERROR|ErrPhase))!=0)  //主电错误的情况
 798  00f8 c60005        	ld	a,_IED+5
 799  00fb a505          	bcp	a,#5
 800  00fd 2706          	jreq	L532
 801                     ; 192 				nop();
 804  00ff 9d            nop
 806                     ; 193 				DCManualCtrl();
 809  0100 cd0000        	call	_DCManualCtrl
 812  0103 2003          	jra	L332
 813  0105               L532:
 814                     ; 200 				ACManualCtrl();
 816  0105 cd0000        	call	_ACManualCtrl
 818  0108               L332:
 819                     ; 203    	pre_b_lock=	b_lock;
 821  0108 7b01          	ld	a,(OFST+0,sp)
 822  010a c70001        	ld	_pre_b_lock,a
 823  010d               L132:
 824                     ; 205 	if(gcKey==KEY_STOP2)
 826  010d c60000        	ld	a,_gcKey
 827  0110 a181          	cp	a,#129
 828  0112 2604          	jrne	L112
 829                     ; 207 	   Debug_time=1;
 831  0114 35010000      	mov	_Debug_time,#1
 832  0118               L112:
 833                     ; 212 }
 836  0118 84            	pop	a
 837  0119 81            	ret
 905                     	xref	_Warning_flag
 906                     	xref	_StopWarning_flag
 907                     	switch	.bss
 908  0000               _Debug_time:
 909  0000 00            	ds.b	1
 910                     	xdef	_Debug_time
 911  0001               _pre_b_lock:
 912  0001 00            	ds.b	1
 913                     	xdef	_pre_b_lock
 914                     	xdef	_bMidWait
 915                     	xdef	_bMiddleWaitTimerID
 916                     	xref	_EEWriteStruct
 917                     	xref	_LockTime
 918                     	xref	_GetKey
 919                     	xref	_gcKey
 920                     	xref	_MuteError
 921                     	xref	_StopWarning
 922                     	xref	_MotorUp
 923                     	xref	_MotorDown
 924                     	xref	_checkSetIDMode
 925                     	xref	_MovMotor
 926                     	xref	_StopMotor
 927                     	xref	_IED
 928                     	xref	_SPIIO
 929                     	xref	_StartDC2ACConvert
 930                     	xref	_EnableBrakPower
 931                     	xref	_StopDC2ACConvert
 932                     	xref	_UNLockAllMotor
 933                     	xref	_GPIO_WriteLow
 934                     	xdef	_SetID
 935                     	xdef	_checkID
 936                     	xdef	_ConvertDown
 937                     	xdef	_ConvertDown1
 938                     	xdef	_ManualCtrl
 939                     	xdef	_ACManualCtrl
 940                     	xdef	_DCManualCtrl
 941                     	xref	_StartTimer
 942                     	xref	_SuspendTask
 943                     	xref	_ActiveTask
 963                     	xref	c_lgsbc
 964                     	xref	c_lgadc
 965                     	xref	c_lcmp
 966                     	xref	c_ltor
 967                     	end
