Add conversion to hPa
This commit is contained in:
+27
-4
@@ -90,8 +90,30 @@ delay1:
|
|||||||
jr nz,delay1
|
jr nz,delay1
|
||||||
ret
|
ret
|
||||||
|
|
||||||
convert_to_hpa:
|
convert_to_hpa: ; shift the decimal point in (pressure) two places left
|
||||||
ld a,(pressure)
|
ld hl,pressure
|
||||||
|
ld b,0 ; count of digits ahead of the point
|
||||||
|
find_point:
|
||||||
|
ld a,(hl)
|
||||||
|
or a
|
||||||
|
ret z ; no point in the string, leave it alone
|
||||||
|
cp a,2eh ; period
|
||||||
|
jr z,found_point
|
||||||
|
inc hl
|
||||||
|
inc b
|
||||||
|
jr find_point
|
||||||
|
found_point:
|
||||||
|
ld a,b
|
||||||
|
cp 3 ; need three whole digits to shift by two
|
||||||
|
ret c
|
||||||
|
dec hl ; step back over the ones digit
|
||||||
|
dec hl ; hl now holds the new tenths digit
|
||||||
|
ld a,(hl)
|
||||||
|
ld (hl),2eh ; drop the point in two places left
|
||||||
|
inc hl
|
||||||
|
ld (hl),a ; and the saved digit after it
|
||||||
|
inc hl
|
||||||
|
ld (hl),00h ; null terminate, discarding the rest
|
||||||
ret
|
ret
|
||||||
|
|
||||||
read_char_b:
|
read_char_b:
|
||||||
@@ -141,6 +163,7 @@ print_telem_to_lcd:
|
|||||||
ld hl,temperature
|
ld hl,temperature
|
||||||
call print_str_to_lcd
|
call print_str_to_lcd
|
||||||
|
|
||||||
|
call convert_to_hpa
|
||||||
call move_to_presaddr
|
call move_to_presaddr
|
||||||
ld hl,pressure
|
ld hl,pressure
|
||||||
call print_str_to_lcd
|
call print_str_to_lcd
|
||||||
@@ -202,7 +225,7 @@ move_to_tempaddr:
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
move_to_presaddr:
|
move_to_presaddr:
|
||||||
ld a,0c1h
|
ld a,0c3h
|
||||||
out (lcd_ctrl),a
|
out (lcd_ctrl),a
|
||||||
call lcd_delay
|
call lcd_delay
|
||||||
ret
|
ret
|
||||||
@@ -214,7 +237,7 @@ move_to_humidaddr:
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
clabel: DB 'degree C',0
|
clabel: DB 'degree C',0
|
||||||
plabel: DB 'pascal',0
|
plabel: DB 'hPa',0
|
||||||
hlabel: DB '% RH',0
|
hlabel: DB '% RH',0
|
||||||
|
|
||||||
char_max equ 15
|
char_max equ 15
|
||||||
|
|||||||
Reference in New Issue
Block a user