Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
a779298deThis file is pinned to the selected release. Download the original to open it in your design tool.
#include "th_comp.h"
#include "hal.h"
HAL_COMP(th);
HAL_PIN(in);
HAL_PIN(in_lpf);
HAL_PIN(in_lp);
HAL_PIN(min);
HAL_PIN(max);
HAL_PIN(out);
HAL_PIN(out_not);
static void nrt_init(void *ctx_ptr, hal_pin_inst_t *pin_ptr) {
struct th_pin_ctx_t *pins = (struct th_pin_ctx_t *)pin_ptr;
PIN(in_lpf) = 1.0;
}
static void rt_func(float period, void *ctx_ptr, hal_pin_inst_t *pin_ptr) {
struct th_pin_ctx_t *pins = (struct th_pin_ctx_t *)pin_ptr;
PIN(in_lp) += (PIN(in) - PIN(in_lp)) * PIN(in_lpf);
if(PIN(in_lp) > PIN(min) && PIN(in_lp) < PIN(max)){
PIN(out) = 1;
PIN(out_not) = 0;
}
else{
PIN(out) = 0;
PIN(out_not) = 1;
}
}
const hal_comp_t th_comp_struct = {
.name = "th",
.nrt = 0,
.rt = rt_func,
.frt = 0,
.nrt_init = nrt_init,
.hw_init = 0,
.rt_start = 0,
.frt_start = 0,
.rt_stop = 0,
.frt_stop = 0,
.ctx_size = 0,
.pin_count = sizeof(struct th_pin_ctx_t) / sizeof(struct hal_pin_inst_t),
};