From 6dda7b3c2adef0beda4f53dd5157c1a1d6da72b8 Mon Sep 17 00:00:00 2001 From: Mathias Rasmussen Date: Fri, 8 Jan 2021 09:35:33 +0100 Subject: [PATCH] docs: Divide program into sections --- Bluejay.asm | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 74 insertions(+), 2 deletions(-) diff --git a/Bluejay.asm b/Bluejay.asm index ed0a2c7..db87790 100644 --- a/Bluejay.asm +++ b/Bluejay.asm @@ -370,11 +370,16 @@ CSEG AT 80h ; Code segment after interrupt vectors STARTUP_POWER_TABLE: DB 1, 2, 3, 4, 6, 9, 12, 18, 25, 37, 50, 62, 75 + +;**** **** **** **** **** **** **** **** **** **** **** **** **** ;**** **** **** **** **** **** **** **** **** **** **** **** **** ; ; Macros ; ;**** **** **** **** **** **** **** **** **** **** **** **** **** +;**** **** **** **** **** **** **** **** **** **** **** **** **** + + DSHOT_TLM_CLOCK EQU 24500000 ; 24.5MHz DSHOT_TLM_START_DELAY EQU -1 ; Start telemetry after 1 tick (~30us after receiving DShot cmd) DSHOT_TLM_PREDELAY EQU 6 ; 6 timer 0 ticks inherent delay @@ -502,6 +507,16 @@ skip: ENDM + +;**** **** **** **** **** **** **** **** **** **** **** **** **** +;**** **** **** **** **** **** **** **** **** **** **** **** **** +; +; Interrupt handlers +; +;**** **** **** **** **** **** **** **** **** **** **** **** **** +;**** **** **** **** **** **** **** **** **** **** **** **** **** + + ;**** **** **** **** **** **** **** **** **** **** **** **** **** ; ; Timer 0 interrupt routine (High priority) @@ -1145,6 +1160,16 @@ ENDIF reti + +;**** **** **** **** **** **** **** **** **** **** **** **** **** +;**** **** **** **** **** **** **** **** **** **** **** **** **** +; +; Misc utility functions +; +;**** **** **** **** **** **** **** **** **** **** **** **** **** +;**** **** **** **** **** **** **** **** **** **** **** **** **** + + ;**** **** **** **** **** **** **** **** **** **** **** **** **** ; ; Wait a number of milliseconds (Multiple entry points) @@ -1308,6 +1333,16 @@ led_3_done: ret + +;**** **** **** **** **** **** **** **** **** **** **** **** **** +;**** **** **** **** **** **** **** **** **** **** **** **** **** +; +; Power and temperature control +; +;**** **** **** **** **** **** **** **** **** **** **** **** **** +;**** **** **** **** **** **** **** **** **** **** **** **** **** + + ;**** **** **** **** **** **** **** **** **** **** **** **** **** ; ; Switch power off routine @@ -1496,6 +1531,16 @@ temp_increase_pwm_limit: ret + +;**** **** **** **** **** **** **** **** **** **** **** **** **** +;**** **** **** **** **** **** **** **** **** **** **** **** **** +; +; Commutation and timing +; +;**** **** **** **** **** **** **** **** **** **** **** **** **** +;**** **** **** **** **** **** **** **** **** **** **** **** **** + + ;**** **** **** **** **** **** **** **** **** **** **** **** **** ; ; Initialize timing routine @@ -2444,6 +2489,16 @@ comm6_comm1_rev: ret + +;**** **** **** **** **** **** **** **** **** **** **** **** **** +;**** **** **** **** **** **** **** **** **** **** **** **** **** +; +; DShot +; +;**** **** **** **** **** **** **** **** **** **** **** **** **** +;**** **** **** **** **** **** **** **** **** **** **** **** **** + + ;**** **** **** **** **** **** **** **** **** **** **** **** **** ; ; Detect DShot RCP level @@ -3036,6 +3091,16 @@ dshot_gcr_encode_F_01111: ret + +;**** **** **** **** **** **** **** **** **** **** **** **** **** +;**** **** **** **** **** **** **** **** **** **** **** **** **** +; +; Settings +; +;**** **** **** **** **** **** **** **** **** **** **** **** **** +;**** **** **** **** **** **** **** **** **** **** **** **** **** + + ;**** **** **** **** **** **** **** **** **** **** **** **** **** ; ; Set default parameters @@ -3177,10 +3242,17 @@ ENDIF ;**** **** **** **** **** **** **** **** **** **** **** **** **** ;**** **** **** **** **** **** **** **** **** **** **** **** **** ; -; Main program start +; Main program ; ;**** **** **** **** **** **** **** **** **** **** **** **** **** ;**** **** **** **** **** **** **** **** **** **** **** **** **** + + +;**** **** **** **** **** **** **** **** **** **** **** **** **** +; +; Main program entry point +; +;**** **** **** **** **** **** **** **** **** **** **** **** **** pgm_start: mov Flash_Key_1, #0 ; Initialize flash keys to invalid values mov Flash_Key_2, #0 @@ -3468,7 +3540,7 @@ wait_for_power_on_nonzero: ;**** **** **** **** **** **** **** **** **** **** **** **** **** ; -; Start entry point +; Motor start entry point ; ;**** **** **** **** **** **** **** **** **** **** **** **** **** init_start: