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 "o_fb_comp.h"
#include "commands.h"
#include "hal.h"
#include "math.h"
#include "defines.h"
#include "angle.h"
#include "stm32f4xx_conf.h"
#include "hw/hw.h"
HAL_COMP(o_fb);
HAL_PIN(a);
HAL_PIN(b);
static void hw_init(void *ctx_ptr, hal_pin_inst_t *pin_ptr) {
// struct o_fb_ctx_t * ctx = (struct o_fb_ctx_t *)ctx_ptr;
// struct o_fb_pin_ctx_t * pins = (struct o_fb_pin_ctx_t *)pin_ptr;
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = FB0_A_EN_PIN;
GPIO_Init(FB0_A_EN_PORT, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = FB0_B_EN_PIN;
GPIO_Init(FB0_B_EN_PORT, &GPIO_InitStructure);
GPIO_SetBits(FB0_A_EN_PORT, FB0_A_EN_PIN);
GPIO_SetBits(FB0_B_EN_PORT, FB0_B_EN_PIN);
GPIO_InitStructure.GPIO_Pin = FB0_A_PIN;
GPIO_Init(FB0_A_PORT, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = FB0_B_PIN;
GPIO_Init(FB0_B_PORT, &GPIO_InitStructure);
}
static void rt_func(float period, void *ctx_ptr, hal_pin_inst_t *pin_ptr) {
// struct o_fb_ctx_t * ctx = (struct o_fb_ctx_t *)ctx_ptr;
struct o_fb_pin_ctx_t *pins = (struct o_fb_pin_ctx_t *)pin_ptr;
if(PIN(a) > 0) {
GPIO_SetBits(FB0_A_PORT, FB0_A_PIN);
} else {
GPIO_ResetBits(FB0_A_PORT, FB0_A_PIN);
}
if(PIN(b) > 0) {
GPIO_SetBits(FB0_B_PORT, FB0_B_PIN);
} else {
GPIO_ResetBits(FB0_B_PORT, FB0_B_PIN);
}
}
const hal_comp_t o_fb_comp_struct = {
.name = "o_fb",
.nrt = 0,
.rt = rt_func,
.frt = 0,
.nrt_init = 0,
.hw_init = hw_init,
.rt_start = 0,
.frt_start = 0,
.rt_stop = 0,
.frt_stop = 0,
.ctx_size = 0,
.pin_count = sizeof(struct o_fb_pin_ctx_t) / sizeof(struct hal_pin_inst_t),
};