/*!
 * @file        user_tmr_config.c
 *
 * @brief       TMR Complementary Output Config
 *
 * @version     V1.0.0
 *
 * @date        2026-03-26
 *
 * @attention
 *
 *  Copyright (C) 2026 Geehy Semiconductor
 *
 *  You may not use this file except in compliance with the
 *  Geehy Semiconductor Software License Agreement.
 *
 *  The program is only for reference, which is distributed in the hope
 *  that it will be useful and instructional for customers to develop
 *  their software. Unless required by applicable law or agreed to in
 *  writing, the program is distributed in an "AS IS" BASIS, WITHOUT
 *  ANY WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the Geehy Semiconductor Software License Agreement for the governing permissions
 *  and limitations under the license.
 */

#include "user_tmr_config.h"

/** @addtogroup Examples
  @{
*/

/** @addtogroup TMR_Examples
@{
*/

/** @addtogroup TMR_ComplementaryOutput
  @{
*/

/** @defgroup TMR_ComplementaryOutput_Variables Variables
  @{
*/

Gpio_ConfigType g_tmr1GpioConfig = {
    .mode    = GPIO_MODE_AF,
    .outtype = GPIO_OUT_TYPE_PP,
    .pupd    = GPIO_PUPD_NO,
    .speed   = GPIO_SPEED_50MHz
};

Tmr_TimeBaseType g_tmr1BaseConfig = {
    .clockDivision     = TMR_CKD_DIV1,
    .counterMode       = TMR_COUNTER_MODE_UP,
    .div               = 63,
    .period            = 0xFF,
    .repetitionCounter = 0
};

Tmr_OcConfigType g_tmr1OcConfig = {
    .OC_Mode         = TMR_OC_MODE_PWM1,
    .OC_Idlestate    = TMR_OCIDLESTATE_RESET,
    .OC_NIdlestate   = TMR_OCNIDLESTATE_RESET,
    .OC_OutputNState = TMR_OUTPUT_NSTATE_ENABLE,
    .OC_OutputState  = TMR_OUTPUT_STATE_ENABLE,
    .OC_Polarity     = TMR_OC_POLARITY_HIGH,
    .OC_NPolarity    = TMR_OC_NPOLARITY_HIGH,
    .Pulse           = 0xEF
};

Tmr_BdtInitType g_tmr1BdtConfig = {
    .automaticOutput = TMR_AUTOMATIC_OUTPUT_ENABLE,
    .breakState      = TMR_BREAK_STATE_ENABLE,
    .breakPolarity   = TMR_BREAK_POLARITY_HIGH,
    .deadTime        = 100,
    .IMOS_State      = TMR_IMOS_STATE_DISABLE,
    .lockLevel       = TMR_LOCK_LEVEL_OFF,
    .RMOS_State      = TMR_RMOS_STATE_DISABLE
};

/**@} end of group TMR_ComplementaryOutput_Variables */

/**@} end of group TMR_ComplementaryOutput */
/**@} end of group TMR_Examples */
/**@} end of group Examples */
