HVAC_M7_Pwms/Pwms.c

73 lines
1.5 KiB
C

//
// Created by Cfif on 14.12.23.
//
#include <stdbool.h>
#include "fc7xxx_driver_port.h"
#include "Pwms.h"
tPwms PWMS;
void Bsp_Tpu_PwmCallback(void) {
Get_Set_Tpu_PwmCallback(&PWMS.pwm);
}
void Bsp_Tpu_OverflowCallBack(void) {
asm("nop");
}
void Bsp_Tpu_PwmCaptureCallback(void) {
Get_Set_Tpu_PwmCaptureCallback(&PWMS.pwmCapture);
}
void Bsp_Tpu_Capture_OverflowCallBack(void) {
asm("nop");
}
void Pwms_Init() {
tPwms *env = &PWMS;
PORT_InitType tInitStruct = {0};
/*
// TPU_CH0: PortB 10: ALT6
tInitStruct.u32PortPins = PORT_PIN_10;
tInitStruct.uPortPinMux.u32PortPinMode = PORT_ALT6_FUNC_MODE;
PORT_InitPins(PORT_B, &tInitStruct);
*/
// TPU_CH0: PortA 18: ALT4
tInitStruct.u32PortPins = PORT_PIN_18;
tInitStruct.uPortPinMux.u32PortPinMode = PORT_ALT4_FUNC_MODE;
PORT_InitPins(PORT_A, &tInitStruct);
PWM_Initial(
&env->pwm,
PERIOD_TICKS,
PERIOD_TICKS * 20 / 100,
0U,
0xFF,
Bsp_Tpu_PwmCallback,
Bsp_Tpu_OverflowCallBack
);
env->pwmIo = vPwmGetIo(&env->pwm);
// TPU_CH8: PortA 31: ALT6
tInitStruct.u32PortPins = PORT_PIN_31;
tInitStruct.uPortPinMux.u32PortPinMode = PORT_ALT6_FUNC_MODE;
PORT_InitPins(PORT_A, &tInitStruct);
PWM_Capture_Initial(
&env->pwmCapture,
0,
0,
8U,
0xFF,
Bsp_Tpu_PwmCaptureCallback,
Bsp_Tpu_Capture_OverflowCallBack
);
}