📄 pwm_int.asm
字号:
;;**************************************************************************
isr_Pwm:
mov isr_acc1,a
mov a,status
mov isr_status1,a
clr F_Timer1_En_Bak
sz intc1.2
set F_Timer1_En_Bak
mov a,11111001b
andm a,intc1
mov a,11111011b
andm a,intc0
set intc0.0
;;-----------------------------------------------
sz F_StartUp_delay1s
jmp L_ExitPwm
;==============================================================================================
;;-----------------------------------------------
;
;-----------------------------------------------
mov a,R_Speed
sub a,C_SpeedLC
sz c
jmp L_LimitCurrentTo10A_Pwm
clr F_OverCurrent ;
clr R_OverCurrentTime
clr F_LimitCurrent
jmp L_CheckPwmValue_Pwm
;---------------------------------------------------
;F_OverCurrent=1
;---------------------------------------------------
L_LimitCurrentTo10A_Pwm:
snz F_LimitCurrent
jmp L_CheckPwmValue_Pwm
mov a,R_CurrentTmp
sub a,C_Current10A
sz c
jmp L_IncPwm_Pwm
jmp L_DecPwm_Pwm
;==============================================================================================
;==============================================================================================
;
;;-----------------------------------------------
L_CheckPwmValue_Pwm:
sdz R_SpeedUpTime ;
jmp L_ExitPwm
mov a,50 ;C_SpeedUpTime ;C_SpeedUpTime equ 5
mov R_SpeedUpTime,a
;----------------------------------------------------
mov a,R_PwmH ;
sub a,R_PwmHBak ;
sz c
jmp L_IncPwm_Pwm
;----------------------------------------------------
L_DecPwm_Pwm: ;DEC PWM。。。
mov a,R_PwmHBak
xor a,C_PwmMin ;20
sz z
jmp L_ExitPwm
dec R_PwmHBak
mov a,R_PwmHBak
mov pwmh,a
jmp L_ExitPwm
L_IncPwm_Pwm: ; PWM。。。
mov a,R_PwmHBak
xor a,C_PwmMax ;244
set F_PwmMax
sz z
jmp L_ExitPwm
clr F_PwmMax
inc R_PwmHBak
mov a,R_PwmHBak
mov pwmh,a
;==============================================================================================
;;-----------------------------------------------
L_ExitPwm:
clr intc0.0
snz F_EntryInt ;
jmp L_ExitPwm1
mov a,11111001b
andm a,intc1
mov a,11111011b
andm a,intc0
jmp L_ExitPwm2
L_ExitPwm1:
mov a,00000010b
orm a,intc1
sz F_Timer1_En_Bak
set intc1.2
mov a,6
orm a,intc0
L_ExitPwm2:
mov a,isr_status1
mov status,a
mov a,isr_acc1
reti
;;**************************************************************************
PUBLIC R_CurrentTmp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -