1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #include "triggers.h"
- #include "FreeRTOS.h"
- #include "task.h"
- #include "settings_api.h"
- #include <stdio.h>
- #include <math.h>
- //
- bool trig_low_value(float value, float lowlevel, float highlevel, float hyst,
- hyst_state_t *state)
- {
- (void)highlevel;
-
- if (*state == hyst_idle) {
- if (value <= lowlevel) {
- *state = hyst_down;
- return true;
- } else {
- return false;
- }
- } else if (*state == hyst_down) {
- if (value > (lowlevel + fabs(hyst))) {
- *state = hyst_idle;
- return false;
- } else {
- return true;
- }
- }
- return false;
- }
- bool trig_high_value(float value, float lowlevel, float highlevel, float hyst,
- hyst_state_t *state)
- {
- (void)lowlevel;
- if (*state == hyst_idle) {
- if (value >= highlevel) {
- *state = hyst_up;
- return true;
- } else {
- return false;
- }
- } else if (*state == hyst_up) {
- if (value < (highlevel - fabs(hyst))) {
- *state = hyst_idle;
- return false;
- } else {
- return true;
- }
- }
- return false;
- }
|