Browse Source

refactor: Update startup boost

main
Mathias Rasmussen 4 years ago
parent
commit
09a516d8e6
  1. 43
      Bluejay.asm

43
Bluejay.asm

@ -117,15 +117,15 @@ DEFAULT_PGM_STARTUP_PWR EQU 9 ; 1=0.031 2=0.047 3=0.063 4=0.094 5=0.125 6=0.18
DEFAULT_PGM_COMM_TIMING EQU 3 ; 1=Low 2=MediumLow 3=Medium 4=MediumHigh 5=High
DEFAULT_PGM_DEMAG_COMP EQU 2 ; 1=Disabled 2=Low 3=High
DEFAULT_PGM_DIRECTION EQU 1 ; 1=Normal 2=Reversed 3=Bidir 4=Bidir rev
DEFAULT_PGM_BEEP_STRENGTH EQU 40 ; 0-255 (BLHeli_S is 1-255)
DEFAULT_PGM_BEACON_STRENGTH EQU 80 ; 0-255
DEFAULT_PGM_BEEP_STRENGTH EQU 40 ; 0..255 (BLHeli_S is 1..255)
DEFAULT_PGM_BEACON_STRENGTH EQU 80 ; 0..255
DEFAULT_PGM_BEACON_DELAY EQU 4 ; 1=1m 2=2m 3=5m 4=10m 5=Infinite
DEFAULT_PGM_ENABLE_TEMP_PROT EQU 7 ; 0=Disabled 1=80C 2=90C 3=100C 4=110C 5=120C 6=130C 7=140C
DEFAULT_PGM_ENABLE_POWER_PROT EQU 1 ; 1=Enabled 0=Disabled
DEFAULT_PGM_BRAKE_ON_STOP EQU 0 ; 1=Enabled 0=Disabled
DEFAULT_PGM_LED_CONTROL EQU 0 ; Byte for LED control. 2bits per LED, 0=Off, 1=On
DEFAULT_PGM_STARTUP_BOOST EQU 1 ; 0=Off, 1=15 (10bit), 2, 3 ... 12 ~ full throttle
DEFAULT_PGM_STARTUP_BOOST EQU 51 ; 0..255 (1000..1125 Throttle): value * (1000 / 2047) + 1000
DEFAULT_PGM_STARTUP_BEEP EQU 1 ; 0=Short beep, 1=Melody
DEFAULT_PGM_DITHERING EQU 1 ; 0=Disabled, 1=Enabled
@ -772,31 +772,30 @@ t1_int_not_bidir:
mov A, Flags_Startup ; Boost pwm during direct start
jz t1_int_startup_boosted
mov Temp6, Startup_Stall_Cnt
; Read startup boost setting
mov Temp2, #Pgm_Startup_Boost
mov A, @Temp2
add A, Startup_Stall_Cnt ; Add more boost when failing to start motor
jz t1_int_startup_boosted ; No startup or stall boost
mov A, Temp5
jnz t1_int_stall_boost ; Already more power than minimum at startup
mov Temp6, A
mov B, #31
mov Temp2, #Pgm_Startup_Boost ; Read startup boost setting (power at startup)
mov B, @Temp2
t1_int_stall_boost_loop:
clr C ; Set power to at least be minimum startup power
mov A, Temp4
add A, B
subb A, B
jnc t1_int_stall_boost
mov Temp4, B
t1_int_stall_boost:
mov A, Startup_Stall_Cnt ; Check stall count
jz t1_int_startup_boosted
mov B, #40 ; Note: Stall count should be less than 6
mul AB
add A, Temp4 ; Add more power when failing to start motor (stalling)
mov Temp4, A
mov A, Temp5
addc A, #0
mov Temp5, A
rla B ; Nonlinear increase
djnz Temp6, t1_int_stall_boost_loop
mov A, Temp5 ; Limit to 11-bit maximum
jnb ACC.3, ($+7)
jnb ACC.3, ($+7) ; Limit to 11-bit maximum
mov Temp4, #0FFh
mov Temp5, #07h
@ -853,7 +852,7 @@ ELSE
ENDIF
t1_int_scale_pwm_resolution:
; Scale pwm resolution and invert
; Scale pwm resolution and invert (duty cycle is defined inversely)
IF PWM_BITS_H == 3 ; 11-bit pwm
mov A, Temp5
cpl A

Loading…
Cancel
Save