📄 m128_alky_touch_con1.s
字号:
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 + -