# HG changeset patch # User JeanDo # Date 1294182884 -3600 # Node ID 49bb155ddfbf8c9604d13a9f0125615016b3b6b4 # Parent 03df42de03e1ea958700ff0fe90384be1b1315a3 Fix altimeter after simulator (zero divide -> 32767m) diff -r 03df42de03e1 -r 49bb155ddfbf code_part1/OSTC_code_asm_part1/altimeter.asm --- a/code_part1/OSTC_code_asm_part1/altimeter.asm Wed Jan 05 07:46:20 2011 +0100 +++ b/code_part1/OSTC_code_asm_part1/altimeter.asm Wed Jan 05 00:14:44 2011 +0100 @@ -24,6 +24,8 @@ ; 2010-12-28 : [jDG] Use MPLAB Math and C libraries for FP32 computations. ; 2011-01-02 : [jDG] Edit reference pressure by 0.25 mbar. ; +; Known bug: Simulator reset altitude and reference... + altimeter_calc: movlb HIGH(pressureAvg) @@ -44,9 +46,6 @@ clrf pressureSum+1 clrf pressureCount - clrf altitude+0 ; Mark as not computed yet. - clrf altitude+1 - movff amb_pressure+0,pressureAvg+0 ; And init first average. movff amb_pressure+1,pressureAvg+1 @@ -57,6 +56,8 @@ rlcf pressureAvg+1 decfsz WREG bra altimeter_reset_1 + + rcall compute_altitude movlb 1 ; Back to normal bank1. return @@ -210,6 +211,13 @@ ; altitude. ; altimeter_menu: + movff pressureRef+0,WREG ; Make sure it is initialized... + movff pressureRef+1,fA + iorwf fA + bnz altimeter_menu_1 ; Yes: skip reset... + rcall altimeter_reset + +altimeter_menu_1: call PLED_ClearScreen ; Menu header. call PLED_standard_color call PLED_topline_box