Mercurial > public > hwos_code
diff src/ms5541.asm @ 645:070528a88715
3.16 release
author | heinrichsweikamp |
---|---|
date | Sun, 07 Nov 2021 12:39:23 +0100 |
parents | 7d8a4c60ec1a |
children | ef2ed7e3a895 |
line wrap: on
line diff
--- a/src/ms5541.asm Mon May 24 18:41:51 2021 +0200 +++ b/src/ms5541.asm Sun Nov 07 12:39:23 2021 +0100 @@ -281,12 +281,6 @@ call isr_div32x16 ; isr_xC:4 = isr_xC:4 / isr_xB:2 with isr_xA as remainder ; isr_xC:2 equals pressure in 1mbar - ; subtract 20mbar from the final result - movlw .20 - subwf isr_xC+0,F - movlw .0 - subwfb isr_xC+1,F - ; copy for compatibility of the next routines movff isr_xC+1,isr_xC+2 movff isr_xC+0,isr_xC+1 @@ -613,7 +607,24 @@ btfsc press_sensor_type ; New sensor found? call I2C_get_calib_MS5837 ; Yes, read C1 to C6 banksel isr_backup ; select bank ISR data + ; double-check sensor type + movlw 0xED + cpfseq C1+0 + bra get_calibration_data1 ; Not 0xED (I2C address false reading) + movlw 0xED + cpfseq C1+1 + bra get_calibration_data1 ; Not 0xED (I2C address false reading) + movlw 0xED + cpfseq C5+0 + bra get_calibration_data1 ; Not 0xED (I2C address false reading) + movlw 0xED + cpfseq C5+1 + bra get_calibration_data1 ; Not 0xED (I2C address false reading) + ; C1 and C5 are 0xEDED -> NOT Sensor 1 + bcf press_sensor_type + +get_calibration_data1: btfsc press_sensor_type ; New sensor found? bra get_calibration_data2 ; Yes, skip to the end