Browse Source

refactor: Remove throttle calibration

main
Mathias Rasmussen 4 years ago
parent
commit
fd14ca25ec
  1. 105
      Bluejay.asm

105
Bluejay.asm

@ -123,10 +123,10 @@ DEFAULT_PGM_BEACON_STRENGTH EQU 80 ; Beacon strength
DEFAULT_PGM_BEACON_DELAY EQU 4 ; 1=1m 2=2m 3=5m 4=10m 5=Infinite DEFAULT_PGM_BEACON_DELAY EQU 4 ; 1=1m 2=2m 3=5m 4=10m 5=Infinite
; COMMON ; COMMON
DEFAULT_PGM_ENABLE_TX_PROGRAM EQU 1 ; 1=Enabled 0=Disabled
DEFAULT_PGM_MIN_THROTTLE EQU 37 ; 4*37+1000=1148
DEFAULT_PGM_MAX_THROTTLE EQU 208 ; 4*208+1000=1832
DEFAULT_PGM_CENTER_THROTTLE EQU 122 ; 4*122+1000=1488 (used in bidirectional mode)
_DEFAULT_PGM_ENABLE_TX_PROGRAM EQU 1 ; 1=Enabled 0=Disabled
_DEFAULT_PGM_MIN_THROTTLE EQU 37 ; 4*37+1000=1148
_DEFAULT_PGM_MAX_THROTTLE EQU 208 ; 4*208+1000=1832
_DEFAULT_PGM_CENTER_THROTTLE EQU 122 ; 4*122+1000=1488 (used in bidirectional mode)
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_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_ENABLE_POWER_PROT EQU 1 ; 1=Enabled 0=Disabled
DEFAULT_PGM_BRAKE_ON_STOP EQU 0 ; 1=Enabled 0=Disabled DEFAULT_PGM_BRAKE_ON_STOP EQU 0 ; 1=Enabled 0=Disabled
@ -203,12 +203,12 @@ Tlm_Data_H: DS 1 ; DShot telemetry data high byte
DSEG AT 30h ; Ram data segment, direct addressing DSEG AT 30h ; Ram data segment, direct addressing
Initial_Arm: DS 1 ; Variable that is set during the first arm sequence after power on Initial_Arm: DS 1 ; Variable that is set during the first arm sequence after power on
Min_Throttle_L: DS 1 ; Minimum throttle scaled (lo byte)
Min_Throttle_H: DS 1 ; Minimum throttle scaled (hi byte)
Center_Throttle_L: DS 1 ; Center throttle scaled (lo byte)
Center_Throttle_H: DS 1 ; Center throttle scaled (hi byte)
Max_Throttle_L: DS 1 ; Maximum throttle scaled (lo byte)
Max_Throttle_H: DS 1 ; Maximum throttle scaled (hi byte)
;Min_Throttle_L: DS 1 ; Minimum throttle scaled (lo byte)
;Min_Throttle_H: DS 1 ; Minimum throttle scaled (hi byte)
;Center_Throttle_L: DS 1 ; Center throttle scaled (lo byte)
;Center_Throttle_H: DS 1 ; Center throttle scaled (hi byte)
;Max_Throttle_L: DS 1 ; Maximum throttle scaled (lo byte)
;Max_Throttle_H: DS 1 ; Maximum throttle scaled (hi byte)
Power_On_Wait_Cnt_L: DS 1 ; Power on wait counter (lo byte) Power_On_Wait_Cnt_L: DS 1 ; Power on wait counter (lo byte)
Power_On_Wait_Cnt_H: DS 1 ; Power on wait counter (hi byte) Power_On_Wait_Cnt_H: DS 1 ; Power on wait counter (hi byte)
@ -307,8 +307,8 @@ Pgm_Comm_Timing: DS 1 ; Programmed commutation timing
_Pgm_Damping_Force: DS 1 ; Programmed damping force (unused - place holder) _Pgm_Damping_Force: DS 1 ; Programmed damping force (unused - place holder)
_Pgm_Gov_Range: DS 1 ; Programmed governor range _Pgm_Gov_Range: DS 1 ; Programmed governor range
_Pgm_Startup_Method: DS 1 ; Programmed startup method (unused - place holder) _Pgm_Startup_Method: DS 1 ; Programmed startup method (unused - place holder)
Pgm_Min_Throttle: DS 1 ; Programmed throttle minimum
Pgm_Max_Throttle: DS 1 ; Programmed throttle maximum
_Pgm_Min_Throttle: DS 1 ; Programmed throttle minimum
_Pgm_Max_Throttle: DS 1 ; Programmed throttle maximum
Pgm_Beep_Strength: DS 1 ; Programmed beep strength Pgm_Beep_Strength: DS 1 ; Programmed beep strength
Pgm_Beacon_Strength: DS 1 ; Programmed beacon strength Pgm_Beacon_Strength: DS 1 ; Programmed beacon strength
Pgm_Beacon_Delay: DS 1 ; Programmed beacon delay Pgm_Beacon_Delay: DS 1 ; Programmed beacon delay
@ -354,7 +354,7 @@ Eep_Pgm_Direction: DB DEFAULT_PGM_DIRECTION ; EEPROM copy of programmed rota
_Eep_Pgm_Input_Pol: DB 0FFh _Eep_Pgm_Input_Pol: DB 0FFh
Eep_Initialized_L: DB 055h ; EEPROM initialized signature low byte Eep_Initialized_L: DB 055h ; EEPROM initialized signature low byte
Eep_Initialized_H: DB 0AAh ; EEPROM initialized signature high byte Eep_Initialized_H: DB 0AAh ; EEPROM initialized signature high byte
Eep_Enable_TX_Program: DB DEFAULT_PGM_ENABLE_TX_PROGRAM ; EEPROM TX programming enable
Eep_Enable_TX_Program: DB _DEFAULT_PGM_ENABLE_TX_PROGRAM ; EEPROM TX programming enable
_Eep_Main_Rearm_Start: DB 0FFh _Eep_Main_Rearm_Start: DB 0FFh
_Eep_Pgm_Gov_Setup_Target: DB 0FFh _Eep_Pgm_Gov_Setup_Target: DB 0FFh
_Eep_Pgm_Startup_Rpm: DB 0FFh _Eep_Pgm_Startup_Rpm: DB 0FFh
@ -364,15 +364,15 @@ Eep_Pgm_Comm_Timing: DB DEFAULT_PGM_COMM_TIMING ; EEPROM copy of programmed c
_Eep_Pgm_Damping_Force: DB 0FFh _Eep_Pgm_Damping_Force: DB 0FFh
_Eep_Pgm_Gov_Range: DB 0FFh _Eep_Pgm_Gov_Range: DB 0FFh
_Eep_Pgm_Startup_Method: DB 0FFh _Eep_Pgm_Startup_Method: DB 0FFh
Eep_Pgm_Min_Throttle: DB DEFAULT_PGM_MIN_THROTTLE ; EEPROM copy of programmed minimum throttle
Eep_Pgm_Max_Throttle: DB DEFAULT_PGM_MAX_THROTTLE ; EEPROM copy of programmed minimum throttle
_Eep_Pgm_Min_Throttle: DB _DEFAULT_PGM_MIN_THROTTLE ; EEPROM copy of programmed minimum throttle
_Eep_Pgm_Max_Throttle: DB _DEFAULT_PGM_MAX_THROTTLE ; EEPROM copy of programmed minimum throttle
Eep_Pgm_Beep_Strength: DB DEFAULT_PGM_BEEP_STRENGTH ; EEPROM copy of programmed beep strength Eep_Pgm_Beep_Strength: DB DEFAULT_PGM_BEEP_STRENGTH ; EEPROM copy of programmed beep strength
Eep_Pgm_Beacon_Strength: DB DEFAULT_PGM_BEACON_STRENGTH ; EEPROM copy of programmed beacon strength Eep_Pgm_Beacon_Strength: DB DEFAULT_PGM_BEACON_STRENGTH ; EEPROM copy of programmed beacon strength
Eep_Pgm_Beacon_Delay: DB DEFAULT_PGM_BEACON_DELAY ; EEPROM copy of programmed beacon delay Eep_Pgm_Beacon_Delay: DB DEFAULT_PGM_BEACON_DELAY ; EEPROM copy of programmed beacon delay
_Eep_Pgm_Throttle_Rate: DB 0FFh _Eep_Pgm_Throttle_Rate: DB 0FFh
Eep_Pgm_Demag_Comp: DB DEFAULT_PGM_DEMAG_COMP ; EEPROM copy of programmed demag compensation Eep_Pgm_Demag_Comp: DB DEFAULT_PGM_DEMAG_COMP ; EEPROM copy of programmed demag compensation
_Eep_Pgm_BEC_Voltage_High: DB 0FFh _Eep_Pgm_BEC_Voltage_High: DB 0FFh
Eep_Pgm_Center_Throttle: DB DEFAULT_PGM_CENTER_THROTTLE ; EEPROM copy of programmed center throttle
_Eep_Pgm_Center_Throttle: DB _DEFAULT_PGM_CENTER_THROTTLE ; EEPROM copy of programmed center throttle
_Eep_Pgm_Main_Spoolup_Time: DB 0FFh _Eep_Pgm_Main_Spoolup_Time: DB 0FFh
Eep_Pgm_Temp_Prot_Enable: DB DEFAULT_PGM_ENABLE_TEMP_PROT ; EEPROM copy of programmed temperature protection enable Eep_Pgm_Temp_Prot_Enable: DB DEFAULT_PGM_ENABLE_TEMP_PROT ; EEPROM copy of programmed temperature protection enable
Eep_Pgm_Enable_Power_Prot: DB DEFAULT_PGM_ENABLE_POWER_PROT ; EEPROM copy of programmed low rpm power protection enable Eep_Pgm_Enable_Power_Prot: DB DEFAULT_PGM_ENABLE_POWER_PROT ; EEPROM copy of programmed low rpm power protection enable
@ -2782,7 +2782,7 @@ set_default_parameters:
mov @Temp1, #DEFAULT_PGM_DIRECTION mov @Temp1, #DEFAULT_PGM_DIRECTION
mov Temp1, #Pgm_Enable_TX_Program mov Temp1, #Pgm_Enable_TX_Program
mov @Temp1, #DEFAULT_PGM_ENABLE_TX_PROGRAM
mov @Temp1, #_DEFAULT_PGM_ENABLE_TX_PROGRAM
inc Temp1 inc Temp1
mov @Temp1, #0FFh ; Main rearm start mov @Temp1, #0FFh ; Main rearm start
inc Temp1 inc Temp1
@ -2802,9 +2802,9 @@ set_default_parameters:
inc Temp1 inc Temp1
mov @Temp1, #0FFh ; Startup method mov @Temp1, #0FFh ; Startup method
inc Temp1 inc Temp1
mov @Temp1, #DEFAULT_PGM_MIN_THROTTLE
mov @Temp1, #_DEFAULT_PGM_MIN_THROTTLE
inc Temp1 inc Temp1
mov @Temp1, #DEFAULT_PGM_MAX_THROTTLE
mov @Temp1, #_DEFAULT_PGM_MAX_THROTTLE
inc Temp1 inc Temp1
mov @Temp1, #DEFAULT_PGM_BEEP_STRENGTH mov @Temp1, #DEFAULT_PGM_BEEP_STRENGTH
inc Temp1 inc Temp1
@ -2818,7 +2818,7 @@ set_default_parameters:
inc Temp1 inc Temp1
mov @Temp1, #0FFh ; Bec voltage high mov @Temp1, #0FFh ; Bec voltage high
inc Temp1 inc Temp1
mov @Temp1, #DEFAULT_PGM_CENTER_THROTTLE
mov @Temp1, #_DEFAULT_PGM_CENTER_THROTTLE
inc Temp1 inc Temp1
mov @Temp1, #0FFh mov @Temp1, #0FFh
inc Temp1 inc Temp1
@ -2836,54 +2836,6 @@ set_default_parameters:
ret ret
;**** **** **** **** **** **** **** **** **** **** **** **** ****
;
; Scale throttle cal
;
; No assumptions
;
; Scales a throttle cal value
; Input is ACC, output is Temp2/Temp1
;
;**** **** **** **** **** **** **** **** **** **** **** **** ****
scale_throttle_cal:
mov Temp3, A
mov B, #0Ch ; Calculate "3%" (for going from 1000us to numerical 1024)
mul AB
mov Temp4, B
mov A, Temp3
clr C ; Shift to 9 bits
rlc A
mov Temp1, A
mov A, #1
rlc A
mov Temp2, A
mov A, Temp1 ; Shift to 10 bits
clr C
rlc A
mov Temp1, A
mov A, Temp2
rlc A
mov Temp2, A
mov A, Temp1 ; Add "3%"
clr C
add A, Temp4
mov Temp1, A
mov A, Temp2
addc A, #0
mov Temp2, A
IF MCU_48MHZ == 1
mov A, Temp1 ; Shift to 11 bits
clr C
rlc A
mov Temp1, A
mov A, Temp2
rlc A
mov Temp2, A
ENDIF
ret
;**** **** **** **** **** **** **** **** **** **** **** **** **** ;**** **** **** **** **** **** **** **** **** **** **** **** ****
; ;
; Decode settings ; Decode settings
@ -2954,23 +2906,6 @@ decode_temp_step:
decode_temp_done: decode_temp_done:
mov Temp_Prot_Limit, A mov Temp_Prot_Limit, A
; Decode throttle cal
mov Temp1, #Pgm_Min_Throttle ; Throttle cal is in 4us units
mov A, @Temp1
call scale_throttle_cal
mov Min_Throttle_L, Temp1
mov Min_Throttle_H, Temp2
mov Temp1, #Pgm_Center_Throttle ; Throttle cal is in 4us units
mov A, @Temp1
call scale_throttle_cal
mov Center_Throttle_L, Temp1
mov Center_Throttle_H, Temp2
mov Temp1, #Pgm_Max_Throttle ; Throttle cal is in 4us units
mov A, @Temp1
call scale_throttle_cal
mov Max_Throttle_L, Temp1
mov Max_Throttle_H, Temp2
call switch_power_off
ret ret

Loading…
Cancel
Save