view code_part1/OSTC_code_asm_part1/spbrgselect.inc @ 212:275befc5f39d

Debug GF model (bug #11 & #12). + ASSERT stops should be computed in order (bug#11). + BUGFIX: Mark GF_low reference at actual first stop, not predicted one. + BUGFIX: sim_to_first_stop() stops BEFORE first stop, not after (bug#11). + BUGFIX: check that calc_nextdecodepth() don't ascent faster than 10m/mn (bug#11). + BUGFIX: calc_nextdecodepth() should check gas switch, too (bug#11). + let gas switch detection in depth/meter (not ambientPresure/mbar). + BUGFIX OCR mode: bad diluent value in sim_alveolar_pressure() (bug#11). + BUGFIX: add deco distance (offset) only to compartiment integration, not to B?hlmann or GF criterion. + BUGFIX: add margin one meter above gas switch depth (bug#12) + BUGFIX: When ascenting too fast, cancel gas switch delay and history (bug#11).
author JeanDo
date Mon, 21 Feb 2011 22:36:48 +0100
parents 96a35aeda5f2
children
line wrap: on
line source

RoundResult SET 0				; Rounding function.  RoundResult = Round(aa/bb)

Round	macro aa,bb

	LOCAL rr = aa/bb

	LOCAL d1 = aa - rr*bb

	LOCAL d2 = (rr+1)*bb - aa

RoundResult = rr

	if d1 >= d2

RoundResult++

	endif

	endm



AbsResult SET 0

Abs		macro nr

	if nr>=0

AbsResult = nr

	else

AbsResult = -nr

	endif

	endm

		

	Round xtal,(16*baud)

spbrg_value EQU RoundResult-1



	Round xtal,(16*(spbrg_value+1))

baud_real EQU RoundResult

	Abs(baud_real-baud)

errpercent EQU AbsResult*100/baud

	if errpercent > 4

		ERROR big error in baudrate: #v(errpercent)%

	endif

	if errpercent >= 2

		messg baudrate not exact: #v(errpercent)%

	endif