diff code_part1/OSTC_code_asm_part1/divemode.asm @ 263:27c9bb14b008

making the seconds display in divemode smoother...
author heinrichsweikamp
date Mon, 11 Apr 2011 11:47:00 +0200
parents f8f869bafd92
children a728b4a1b660
line wrap: on
line diff
--- a/code_part1/OSTC_code_asm_part1/divemode.asm	Mon Apr 11 11:23:00 2011 +0200
+++ b/code_part1/OSTC_code_asm_part1/divemode.asm	Mon Apr 11 11:47:00 2011 +0200
@@ -50,7 +50,7 @@
 
 diveloop_loop:		; The diveloop starts here
 	btfss	onesecupdate					; tasks any new second
-	bra		diveloop_loop2
+	bra		diveloop_loop3
 
 	btfsc	gauge_mode						; Only in gauge mode
 	bra		diveloop_loop1a					; One Second Tasks in Gauge mode
@@ -71,10 +71,10 @@
 	call	timeout_divemode				; dive finished? This routine sets the required flags
 
 	btfsc	twosecupdate					; two seconds after the last call
-	bra		diveloop_loop1a2					; Common Tasks
+	bra		diveloop_loop1a2				; Common Tasks
 
-	bsf		twosecupdate				; Routines used in the "other second"
-	call	calc_average_depth			; calculate average depth
+	bsf		twosecupdate					; Routines used in the "other second"
+	call	calc_average_depth				; calculate average depth
 	
 	bra		diveloop_loop1x					; Common Tasks
 
@@ -98,6 +98,29 @@
 	
 ; Common Tasks for all modes
 diveloop_loop1x:
+	call	customview_second				; Do every-second tasks for the custom view area
+
+	GETCUSTOM8	d'38'		; Show seconds (=1?)
+	movwf	lo
+	movlw	d'1'
+	cpfseq	lo					; =1?
+	bra		diveloop_loop1y		; No, minutes only
+	bsf		update_divetime		; Set Update flag
+diveloop_loop1y:
+	btfss	update_divetime				; display new divetime?
+	bra		diveloop_loop1z				; No
+	btfsc	premenu						; Is the divemode menu active?
+	bra		diveloop_loop1z				; Yes
+	call	PLED_divemins				; Display (new) divetime!
+
+diveloop_loop1z
+	bcf		update_divetime				; clear flag
+
+	btfsc	FLAG_const_ppO2_mode		; only in const_ppO2_mode
+	call	PLED_const_ppO2_value		; display const ppO2 setting in [Bar]
+	btfsc	ppO2_show_value				; show ppO2?
+	call	check_ppO2					; check ppO2 and displays warning if required
+
 	call	timeout_divemode				; dive finished? This routine sets the required flags
 	btfsc	low_battery_state				; If battery is low, then...
 	call	update_batt_voltage_divemode	; Display Battery Warning Text
@@ -108,32 +131,31 @@
 	call	set_leds_divemode				; Sets warnings, if required. Also Sets buzzer
 	btfsc	enter_error_sleep				; Enter Fatal Error Routine?
 	call	fatal_error_sleep				; Yes (In Sleepmode_vxx.asm!)
-	call	customview_second				; Do every-second tasks for the custom view area
 
 	bcf		onesecupdate					; one seconds update done
 
-	GETCUSTOM8	d'38'		; Show seconds (=1?)
-	movwf	lo
-	movlw	d'1'
-	cpfseq	lo					; =1?
-	bra		diveloop_loop2		; No, minutes only
-	bsf		update_divetime		; Set Update flag
-
-
-diveloop_loop2:	
-	btfss	update_divetime				; display new divetime?
-	bra		diveloop_loop3				; No
-	btfsc	premenu						; Is the divemode menu active?
-	bra		diveloop_loop2a				; Yes
-	call	PLED_divemins				; Display (new) divetime!
-	btfsc	FLAG_const_ppO2_mode		; only in const_ppO2_mode
-	call	PLED_const_ppO2_value		; display const ppO2 setting in [Bar]
-	btfsc	ppO2_show_value				; show ppO2?
-	call	check_ppO2					; check ppO2 and displays warning if required
-
-diveloop_loop2a:
-	bcf		update_divetime				; clear flag
-
+;	GETCUSTOM8	d'38'		; Show seconds (=1?)
+;	movwf	lo
+;	movlw	d'1'
+;	cpfseq	lo					; =1?
+;	bra		diveloop_loop2		; No, minutes only
+;	bsf		update_divetime		; Set Update flag
+;
+;
+;diveloop_loop2:	
+;	btfss	update_divetime				; display new divetime?
+;	bra		diveloop_loop3				; No
+;	btfsc	premenu						; Is the divemode menu active?
+;	bra		diveloop_loop2a				; Yes
+;	call	PLED_divemins				; Display (new) divetime!
+;	btfsc	FLAG_const_ppO2_mode		; only in const_ppO2_mode
+;	call	PLED_const_ppO2_value		; display const ppO2 setting in [Bar]
+;	btfsc	ppO2_show_value				; show ppO2?
+;	call	check_ppO2					; check ppO2 and displays warning if required
+;
+;diveloop_loop2a:
+;	bcf		update_divetime				; clear flag
+;
 diveloop_loop3:
 	btfss	menubit							; Divemode menu active?
 	call	test_switches_divemode			; No, Check switches normal