view Small_CPU/Inc/pressure.h @ 881:5b675077ccfb Evo_2_23

Added filtering of ascent speed: In the previous version the ascent speed was simply calculated based of the last measured pressure values. This may lead to unexpected colorchanges of the depth value. To smooth this behavior a filter has been added which evaluates if a movment direction is valid for a certain period of time. If the condition direction is stable then the ascend speed is provided.
author Ideenmodellierer
date Sat, 31 Aug 2024 17:28:37 +0200
parents 4093ac18b25c
children
line wrap: on
line source

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef PRESSURE_H
#define PRESSURE_H

#include <stdint.h>

uint8_t init_pressure(void);
void pressure_set_offset (float pressureOffset, float temperatureOffset);

uint8_t pressure_update(void);
void pressure_update_alternating(void);

uint8_t is_init_pressure_done(void);

HAL_StatusTypeDef  pressure_sensor_get_pressure_raw(void);
HAL_StatusTypeDef  pressure_sensor_get_temperature_raw(void);
void pressure_calculation(void);

float get_temperature(void);
float get_pressure_mbar(void);
float get_surface_mbar(void);

uint8_t is_surface_pressure_stable(void);
float set_last_surface_pressure_stable(void);

void init_surface_ring(uint8_t force);
void update_surface_pressure(uint8_t call_rhythm_seconds);

uint32_t demo_modify_temperature_and_pressure(int32_t divetime_in_seconds, uint8_t subseconds, float ceiling_mbar);

#endif /* PRESSURE_H */