Mercurial > public > mk2
diff code_part1/OSTC_code_asm_part1/menu_logbook.asm @ 427:04535df08575
Fixed -2?C .. +35?C scale for logbook display.
author | JeanDo |
---|---|
date | Wed, 03 Aug 2011 00:54:41 +0200 |
parents | 07f5b0baaa57 |
children | f36b93f2fbed b0f3ab805879 |
line wrap: on
line diff
--- a/code_part1/OSTC_code_asm_part1/menu_logbook.asm Sun Jul 31 13:27:23 2011 +0200 +++ b/code_part1/OSTC_code_asm_part1/menu_logbook.asm Wed Aug 03 00:54:41 2011 +0200 @@ -657,37 +657,34 @@ movf divisor_temperature,W bz profile_display_skip_temp - movlw LOW((.153*.8)/.100) ; fixed tp° scale: (10.0° * scale8 )/153pix + movlw LOW((.153*.256)/.370) ; fixed tp° scale: (-2 .. +35°C * scaleé56 )/153pix movwf xB+0 - movlw HIGH((.153*.8)/.100) + movlw HIGH((.153*.256)/.370) movwf xB+1 - movf logbook_cur_tp+0,W - subwf logbook_min_tp+0,W + movf logbook_cur_tp+0,W ; Current Tp° - (-2.0°C) == Tp° + 20. + addlw LOW(.20) ; Low byte. movwf xA+0 movf logbook_cur_tp+1,W - subwfb logbook_min_tp+1,W + btfsc STATUS,C ; Propagate carry, if any + incf WREG movwf xA+1 call mult16x16 ; xA*xB=xC - ; scale: divide by 8. Don't bother about CARRY for the high byte. - rrcf xC+1,F - rrcf xC+0,F - rrcf xC+1,F - rrcf xC+0,F - rrcf xC+1,F - rrcf xC+0,F - - movlw .75 - subwf xC+0,F ; Upside-down: Y = .75 + (.153 - result) + ; scale: divide by 256, ie. take just high byte. + movf xC+1,W + sublw .75+.153 ; Upside-down: Y = .75 + (.153 - result) + movwf xC+0 movlw color_pink call PLED_set_color movff logbook_last_tp,xC+1 - call profile_display_fill ; In this column between this row (xC+0) and the last row (apnoe_mins) + call profile_display_fill ; In this column between this row (xC+0) and the last row (xC+1) movff xC+0,logbook_last_tp - PIXEL_WRITE timeout_counter3,xC+0 ; Set col(0..159) x row (0..239), put a std color pixel. + + PIXEL_WRITE timeout_counter3,xC+0 ; Set col(0..159) x row (0..239), put a current color pixel. + profile_display_skip_temp: ;---- Draw depth curve --------------------------------------------------- @@ -703,12 +700,13 @@ movff apnoe_mins,xC+0 rcall profile_display_color ; Back to normal profile color. + movff apnoe_mins,xC+1 - call profile_display_fill ; In this column between this row (xC+0) and the last row (apnoe_mins) + call profile_display_fill ; In this column between this row (xC+0) and the last row (xC+1) movff xC+0,apnoe_mins ; Store last row for fill routine - incf timeout_counter3,F + PIXEL_WRITE timeout_counter3,xC+0 ; Set col(0..159) x row (0..239), put a std color pixel. - PIXEL_WRITE timeout_counter3,xC+0 ; Set col(0..159) x row (0..239), put a std color pixel. + incf timeout_counter3,F ;---- Draw CNS curve, if any --------------------------------------------- movf divisor_cns,W @@ -1085,6 +1083,15 @@ return profile_display_fill2: + ; Make sure to init X position. + movf timeout_counter3,W + mullw 2 + decf PRODL,F + movlw 0 + subwfb PRODH,F + call pixel_write_col320 + + movf xC+0,W cpfsgt xC+1 ; apnoe_mins>xC+0? bra profile_display_fill_up ; Yes!