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

📄 m128_alky_touch_con1.s

📁 m8做的电压检测
💻 S
📖 第 1 页 / 共 5 页
字号:
	cpc R3,R21
	brsh L21
X6:
	.dbline 655
	movw R20,R2
L21:
	.dbline 656
;  TEMP=ICR1_TEMP-rOut;
	lds R10,_ICR1_TEMP
	lds R11,_ICR1_TEMP+1
	sub R10,R20
	sbc R11,R21
	.dbline 657
;  LDPWM_Value_XianShi = TEMP;
	sts _LDPWM_Value_XianShi+1,R11
	sts _LDPWM_Value_XianShi,R10
	.dbline 658
;  CLI();
	cli
	.dbline 661
; // if(P_OK==1)
; // {
;    OCR1A = TEMP;
	out 0x2b,R11
	out 0x2a,R10
	.dbline 662
;    ICR1  = ICR1_TEMP;
	lds R2,_ICR1_TEMP
	lds R3,_ICR1_TEMP+1
	out 0x27,R3
	out 0x26,R2
	.dbline 668
; // }
; // else
; //   OCR1A = ICR1_TEMP;
; // OCR1AH = TEMP/256;
; // OCR1AL = TEMP%256;
;  SEI();
	sei
	.dbline -2
L18:
	.dbline 0 ; func end
	xcall pop_xgset300C
	ld R0,y+
	out 0x3f,R0
	ld R31,y+
	ld R30,y+
	ld R27,y+
	ld R26,y+
	ld R25,y+
	ld R24,y+
	ld R21,y+
	ld R20,y+
	ld R19,y+
	ld R18,y+
	ld R17,y+
	ld R16,y+
	ld R11,y+
	ld R10,y+
	ld R9,y+
	ld R8,y+
	ld R7,y+
	ld R6,y+
	ld R5,y+
	ld R4,y+
	ld R3,y+
	ld R2,y+
	ld R1,y+
	ld R0,y+
	reti
	.dbsym r TEMP 10 i
	.dbsym r rOut 20 I
	.dbend
	.dbfunc e timer3_init _timer3_init fV
	.even
_timer3_init::
	.dbline -1
	.dbline 678
; }
; 
; //******************************************
; //******************************************
; //TIMER3 initialize - prescale:1024
; // WGM: 14) PWM fast, TOP=ICRn
; // desired value: 10Sec
; // actual value: 10.000Sec (0.0%)
; void timer3_init(void)
; {
	.dbline 679
;  TCCR3B = 0x00; //stop
	clr R2
	sts 138,R2
	.dbline 680
;  TCNT3H = 0x67; //setup
	ldi R24,103
	sts 137,R24
	.dbline 681
;  TCNT3L = 0x6B;
	ldi R24,107
	sts 136,R24
	.dbline 682
;  OCR3AH = 0x98;
	ldi R24,152
	sts 135,R24
	.dbline 683
;  OCR3AL = 0x95;
	ldi R24,149
	sts 134,R24
	.dbline 684
;  OCR3BH = 0x98;
	ldi R24,152
	sts 133,R24
	.dbline 685
;  OCR3BL = 0x95;
	ldi R24,149
	sts 132,R24
	.dbline 686
;  OCR3CH = 0x98;
	ldi R24,152
	sts 131,R24
	.dbline 687
;  OCR3CL = 0x95;
	ldi R24,149
	sts 130,R24
	.dbline 688
;  ICR3H  = 0x98;
	ldi R24,152
	sts 129,R24
	.dbline 689
;  ICR3L  = 0x95;
	ldi R24,149
	sts 128,R24
	.dbline -2
L23:
	.dbline 0 ; func end
	ret
	.dbend
	.area vector(rom, abs)
	.org 116
	jmp _timer3_ovf_isr
	.area text(rom, con, rel)
	.dbfile D:\Program\M128_ALKY_Touch_CON1\M128_ALKY_Touch_CON1.c
	.dbfunc e timer3_ovf_isr _timer3_ovf_isr fV
;           TEMP -> R10,R11
;           rOut -> R20,R21
	.even
_timer3_ovf_isr::
	st -y,R0
	st -y,R1
	st -y,R2
	st -y,R3
	st -y,R4
	st -y,R5
	st -y,R6
	st -y,R7
	st -y,R8
	st -y,R9
	st -y,R10
	st -y,R11
	st -y,R16
	st -y,R17
	st -y,R18
	st -y,R19
	st -y,R20
	st -y,R21
	st -y,R24
	st -y,R25
	st -y,R26
	st -y,R27
	st -y,R30
	st -y,R31
	in R0,0x3f
	st -y,R0
	xcall push_xgset300C
	.dbline -1
	.dbline 703
;  //TCCR3A = 0x32;
;  //TCCR3A = 0x02;
;  //TCCR3B = 0x1D; //start Timer
; }
; 
; //******************************************
; //#pragma interrupt_handler timer3_ovf_isr:iv_TIM3_OVF
; //void timer3_ovf_isr(void)
; //{
; //}
; //******************************************
; #pragma interrupt_handler timer3_ovf_isr:iv_TIM3_OVF
; void timer3_ovf_isr(void)
; {
	.dbline 711
;  //TIMER3 has overflowed
;  //TCNT3H = 0x67; //reload counter high value
;  //TCNT3L = 0x6B; //reload counter low value
;  
;  int rOut;
;  uint TEMP;
;  
;  TEMP=(unsigned int)ZhuQi_WenDu_Value;
	lds R18,_ZhuQi_WenDu_Value+2
	lds R19,_ZhuQi_WenDu_Value+2+1
	lds R16,_ZhuQi_WenDu_Value
	lds R17,_ZhuQi_WenDu_Value+1
	xcall fpint
	movw R10,R16
	.dbline 712
;  rOut=PIDCalc_WD(&WD_PID,TEMP);
	movw R18,R10
	ldi R16,<_WD_PID
	ldi R17,>_WD_PID
	xcall _PIDCalc_WD
	movw R20,R16
	.dbline 713
;  if(rOut<0)  rOut=0;
	cpi R16,0
	ldi R30,0
	cpc R17,R30
	brge L25
X7:
	.dbline 713
	clr R20
	clr R21
L25:
	.dbline 714
;  if(rOut>ICR3_TEMP)   rOut=ICR3_TEMP;
	lds R2,_ICR3_TEMP
	lds R3,_ICR3_TEMP+1
	cp R2,R20
	cpc R3,R21
	brsh L27
X8:
	.dbline 714
	movw R20,R2
L27:
	.dbline 715
;  TEMP=ICR3_TEMP-rOut;
	lds R10,_ICR3_TEMP
	lds R11,_ICR3_TEMP+1
	sub R10,R20
	sbc R11,R21
	.dbline 716
;  CLI();
	cli
	.dbline 717
;  OCR3B = TEMP;
	sts 132+1,R11
	sts 132,R10
	.dbline 718
;    ICR3  = ICR3_TEMP;
	lds R2,_ICR3_TEMP
	lds R3,_ICR3_TEMP+1
	sts 128+1,R3
	sts 128,R2
	.dbline 721
; // OCR3BH = TEMP/256;
; // OCR3BL = TEMP%256;
;  SEI();
	sei
	.dbline -2
L24:
	.dbline 0 ; func end
	xcall pop_xgset300C
	ld R0,y+
	out 0x3f,R0
	ld R31,y+
	ld R30,y+
	ld R27,y+
	ld R26,y+
	ld R25,y+
	ld R24,y+
	ld R21,y+
	ld R20,y+
	ld R19,y+
	ld R18,y+
	ld R17,y+
	ld R16,y+
	ld R11,y+
	ld R10,y+
	ld R9,y+
	ld R8,y+
	ld R7,y+
	ld R6,y+
	ld R5,y+
	ld R4,y+
	ld R3,y+
	ld R2,y+
	ld R1,y+
	ld R0,y+
	reti
	.dbsym r TEMP 10 i
	.dbsym r rOut 20 I
	.dbend
	.dbfunc e timer2_init _timer2_init fV
	.even
_timer2_init::
	.dbline -1
	.dbline 730
; }
; 
; //******************************************
; //TIMER2 initialize - prescale:1024
; // WGM: Normal
; // desired value: 50mSec
; // actual value: 49.920mSec (0.2%)
; void timer2_init(void)
; {
	.dbline 731
;  TCCR2 = 0x00; //stop
	clr R2
	out 0x25,R2
	.dbline 732
;  TCNT2 = 0x3D; //setup
	ldi R24,61
	out 0x24,R24
	.dbline 733
;  OCR2  = 0xC3;
	ldi R24,195
	out 0x23,R24
	.dbline -2
L29:
	.dbline 0 ; func end
	ret
	.dbend
	.area vector(rom, abs)
	.org 40
	jmp _timer2_ovf_isr
	.area text(rom, con, rel)
	.dbfile D:\Program\M128_ALKY_Touch_CON1\M128_ALKY_Touch_CON1.c
	.dbfunc e timer2_ovf_isr _timer2_ovf_isr fV
	.area  func_lit(rom, con, rel)
L176:
	.word `L59
	.word `L62
	.word `L68
	.word `L73
	.word `L89
	.word `L113
	.word `L137
	.word `L163
	.word `L163
	.word `L163
	.word `L163
	.word `L163
	.word `L40
	.word `L40
	.word `L166
	.word `L170
	.area text(rom, con, rel)
	.area  func_lit(rom, con, rel)
L409:
	.word `L300
	.word `L306
	.word `L312
	.word `L318
	.word `L328
	.word `L340
	.word `L352
	.word `L362
	.word `L368
	.word `L375
	.word `L382
	.word `L389
	.word `L395
	.word `L396
	.word `L397
	.word `L403
	.area text(rom, con, rel)
;        TEMP_CH -> <dead>
;         addr_t -> <dead>
;           addr -> <dead>
;          Temp1 -> <dead>
;           Temp -> <dead>
;              j -> <dead>
;              i -> <dead>
;              k -> R20
	.even
_timer2_ovf_isr::
	st -y,R0
	st -y,R1
	st -y,R2
	st -y,R3
	st -y,R4
	st -y,R5
	st -y,R6
	st -y,R7
	st -y,R8
	st -y,R9
	st -y,R10
	st -y,R11
	st -y,R16
	st -y,R17
	st -y,R18
	st -y,R19
	st -y,R20
	st -y,R22
	st -y,R23
	st -y,R24
	st -y,R25
	st -y,R26
	st -y,R27
	st -y,R30
	st -y,R31
	in R0,0x3f
	st -y,R0
	xcall push_xgsetF00C
	.dbline -1
	.dbline 740
;  //TCCR2 = 0x05; //start
; }
; 
; //******************************************
; #pragma interrupt_handler timer2_ovf_isr:iv_TIM2_OVF
; void timer2_ovf_isr(void)
; {
	.dbline 747
;   unsigned char i;
;   unsigned char j,k,Temp,Temp1;
;   unsigned int addr;
;   unsigned char addr_t;
;   unsigned char TEMP_CH;
;   
;  TCNT2 = 0x3D; //reload counter value
	ldi R24,61
	out 0x24,R24
	.dbline 748
;  TIMSK = 0x05;
	ldi R24,5
	out 0x37,R24
	.dbline 749
;  SEI();
	sei
	.dbline 758
; /*
; 	ReadTime();
; 	if(!(Last_Second==Second))
; 	{
; 	  Display_Time(0); 
; 	  Last_Second=Second;
; 	}  
; */
; 	if(ZhuQi_WenDu_Value>50)
	ldi R24,<_ZhuQi_WenDu_Value
	ldi R25,>_ZhuQi_WenDu_Value
	ldi R16,<L33
	ldi R17,>L33
	xcall lpm32
	st -y,R25
	st -y,R24
	xcall fpcmp1
	brge L31
X9:
	.dbline 759
; 	{
	.dbline 760
;      TCCR3A = 0x02;
	ldi R24,2
	sts 139,R24
	.dbline 761
;      TCCR3B = 0x1D; //start Timer3
	ldi R24,29
	sts 138,R24
	.dbline 762
;      PORTE&=~(1<<4);
	cbi 0x3,4
	.dbline 763
; 	}
L31:
	.dbline 765
; 	
; 	if((Set_WenDu_Value+1) < ((unsigned char)ZhuQi_WenDu_Value));
	lds R18,_ZhuQi_WenDu_Value+2
	lds R19,_ZhuQi_WenDu_Value+2+1
	lds R16,_ZhuQi_WenDu_Value
	lds R17,_ZhuQi_WenDu_Value+1
	xcall fpint
	lds R24,_Set_WenDu_Value
	subi R24,255    ; addi 1
	cp R24,R16
	brsh L34
X10:
	.dbline 765
L34:
	.dbline 766
; 	  WD_PID.SumError =0;
	clr R2
	clr R3
	sts _WD_PID+9+1,R3
	sts _WD_PID+9,R2
	.dbline 769
; 	
; 	//ADC_data_T=ADC_data_T+ads1100_read(ads1100_readaddr);
; 	ADC_data_T=ADC_data_T + SYS_ADC(DQ_LD_ADC);
	ldi R16,6
	xcall _SYS_ADC
	movw R2,R16
	clr R4
	clr R5
	lds R8,_ADC_data_T+2
	lds R9,_ADC_data_T+2+1
	lds R6,_ADC_data_T
	lds R7,_ADC_data_T+1
	add R6,R2
	adc R7,R3
	adc R8,R4
	adc R9,R5
	sts _ADC_data_T+1,R7
	sts _ADC_data_T,R6
	sts _ADC_data_T+2+1,R9
	sts _ADC_data_T+2,R8
	.dbline 771
; 	
;     DQ_WenDu_TOT = DQ_WenDu_TOT + SYS_ADC(DQ_WenDu_ADC);
	clr R16
	xcall _SYS_ADC
	lds R2,_DQ_WenDu_TOT
	lds R3,_DQ_WenDu_TOT+1
	add R2,R16
	adc R3,R17
	sts _DQ_WenDu_TOT+1,R3
	sts _DQ_WenDu_TOT,R2
	.dbline 772
;     ZhuQi_WenDu_TOT = ZhuQi_WenDu_TOT + SYS_ADC(ZhuQi_WenDu_ADC);
	ldi R16,4
	xcall _SYS_ADC
	lds R2,_ZhuQi_WenDu_TOT
	lds R3,_ZhuQi_WenDu_TOT+1
	add R2,R16
	adc R3,R17
	sts _ZhuQi_WenDu_TOT+1,R3
	sts _ZhuQi_WenDu_TOT,R2
	.dbline 773
;     DQ_ShiDu_TOT = DQ_ShiDu_TOT + SYS_ADC(DQ_ShiDu_ADC);
	ldi R16,1
	xcall _SYS_ADC
	lds R2,_DQ_ShiDu_TOT
	lds R3,_DQ_ShiDu_TOT+1
	add R2,R16
	adc R3,R17
	sts _DQ_ShiDu_TOT+1,R3
	sts _DQ_ShiDu_TOT,R2
	.dbline 776
; 	
;  //   k=keboard();
;     k=keyboard();
	xcall _keyboard
	mov R10,R16
	mov R20,R10
	.dbline 777
; 	if(!(Last_Key==k))
	lds R2,_Last_Key
	cp R2,R16
	brne X65
	xjmp L37
X65:
X11:
	.dbline 778
; 	{
	.dbline 779
; 	  Last_Key=k;
	sts _Last_Key,R20
	.dbline 782
; 	  
; 	  
; 	  if(YN_TOUCH_KEY_DISP_F)
	lds R2,_FLAG
	sbrs R2,7
	rjmp X66
	rjmp X67
X66:	jmp L39
X67:
X12:
	.dbline 783
; 	  {
	.dbline 784
;        if(k<10)
	cpi R16,10
	brsh L41
X13:
	.dbline 785
;        {
	.dbline 786
;         KEY_TEMP[5]=KEY_TEMP[4];

⌨️ 快捷键说明

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