Browse Source

refactor: Clean up and compact bit flags

main
Mathias Rasmussen 4 years ago
parent
commit
2fb0c5afec
  1. 42
      Bluejay.asm

42
Bluejay.asm

@ -140,35 +140,31 @@ Bit_Access_Int: DS 1 ; Variable at bit accessible address (for interrupts)
Rcp_Outside_Range_Cnt: DS 1 ; RC pulse outside range counter (incrementing)
Rcp_Timeout_Cntd: DS 1 ; RC pulse timeout counter (decrementing)
Flags0: DS 1 ; State flags. Reset upon init_start
Flag_T3_PENDING BIT Flags0.0 ; Timer 3 pending flag
Flag_DEMAG_DETECTED BIT Flags0.1 ; Set when excessive demag time is detected
Flag_COMP_TIMED_OUT BIT Flags0.2 ; Set when comparator reading timed out
Flag_PACKET_PENDING BIT Flags0.4 ; DShot telemetry data packet is ready to be sent
Flags1: DS 1 ; State flags. Reset upon init_start
Flag_MOTOR_STARTED BIT Flags1.2 ; Set when motor is started
Flag_DIR_CHANGE_BRAKE BIT Flags1.3 ; Set when braking before direction change
Flag_HIGH_RPM BIT Flags1.4 ; Set when motor rpm is high (Comm_Period4x_H less than 2)
Flag_LOW_PWM_POWER BIT Flags1.5 ; Set when pwm duty cycle is below 50%
Flags_Startup: DS 1 ; State flags. Reset upon init_start
Flag_STARTUP_PHASE BIT Flags_Startup.0 ; Set when in startup phase
Flag_INITIAL_RUN_PHASE BIT Flags_Startup.1 ; Set when in initial run phase, before synchronized run is achieved
; Remaining bits must be cleared
; Note: Remaining bits must be cleared
Flags1: DS 1 ; State flags. Reset upon init_start
Flag_T3_PENDING BIT Flags1.0 ; Timer 3 pending flag
Flag_DEMAG_DETECTED BIT Flags1.1 ; Set when excessive demag time is detected
Flag_COMP_TIMED_OUT BIT Flags1.2 ; Set when comparator reading timed out
Flag_PACKET_PENDING BIT Flags1.3 ; DShot telemetry data packet is ready to be sent
Flag_MOTOR_STARTED BIT Flags1.4 ; Set when motor is started
Flag_DIR_CHANGE_BRAKE BIT Flags1.5 ; Set when braking before direction change
Flag_HIGH_RPM BIT Flags1.6 ; Set when motor rpm is high (Comm_Period4x_H less than 2)
Flag_LOW_PWM_POWER BIT Flags1.7 ; Set when pwm duty cycle is below 50%
Flags2: DS 1 ; State flags. NOT reset upon init_start
Flag_RCP_DIR_REV BIT Flags2.5 ; RC pulse direction in bidirectional mode
Flag_PGM_DIR_REV BIT Flags2.0 ; Programmed direction. 0=normal, 1=reversed
Flag_PGM_BIDIR_REV BIT Flags2.1 ; Programmed bidirectional direction. 0=normal, 1=reversed
Flag_PGM_BIDIR BIT Flags2.2 ; Programmed bidirectional operation. 0=normal, 1=bidirectional
Flag_SKIP_T2_INT BIT Flags2.3 ; Set for 48MHz MCUs when timer 2 interrupt shall be ignored
Flag_CLOCK_SET_AT_48MHZ BIT Flags2.4 ; Set if 48MHz MCUs run at 48MHz
Flag_RCP_STOP BIT Flags2.5 ; Set if the RC pulse value is zero
Flag_RCP_DIR_REV BIT Flags2.6 ; RC pulse direction in bidirectional mode
Flag_RCP_DSHOT_INVERTED BIT Flags2.7 ; DShot RC pulse input is inverted (and supports telemetry)
Flags3: DS 1 ; State flags. NOT reset upon init_start
Flag_PGM_DIR_REV BIT Flags3.0 ; Programmed direction. 0=normal, 1=reversed
Flag_PGM_BIDIR_REV BIT Flags3.1 ; Programmed bidirectional direction. 0=normal, 1=reversed
Flag_PGM_BIDIR BIT Flags3.2 ; Programmed bidirectional operation. 0=normal, 1=bidirectional
Flag_SKIP_T2_INT BIT Flags3.3 ; Set for 48MHz MCUs when timer 2 interrupt shall be ignored
Flag_CLOCK_SET_AT_48MHZ BIT Flags3.4 ; Set if 48MHz MCUs run at 48MHz
Flag_RCP_STOP BIT Flags3.5 ; Set if the RC pulse value is zero
Tlm_Data_L: DS 1 ; DShot telemetry data low byte
Tlm_Data_H: DS 1 ; DShot telemetry data high byte
Tmp_B: DS 1
@ -3501,7 +3497,6 @@ init_start:
setb IE_EA ; Enable interrupts
clr A
mov Flags0, A ; Clear flags0
mov Flags1, A ; Clear flags1
mov Flags_Startup, A ; Clear startup flags
mov Demag_Detected_Metric, A ; Clear demag metric
@ -3793,7 +3788,6 @@ run_to_wait_for_power_on:
run_to_wait_for_power_on_stall_done:
clr IE_EA
call switch_power_off
mov Flags0, #0 ; Clear flags0
mov Flags1, #0 ; Clear flags1
mov Flags_Startup, #0 ; Clear startup flags
IF MCU_48MHZ == 1

Loading…
Cancel
Save