#include "timer_pwm.h"

void timer4_pwm_init(u32 period)
{
    gpio_init_typedef gpio_init_structure;
    tmr_base_init_typedef tmr_base_init_struct;

    clock_gate1_cmd(CLOCK_GATE1_TMR4, ENABLE);

    gpio_init_structure.gpio_pin = GPIO_PIN_2;
    gpio_init_structure.gpio_dir = GPIO_DIR_OUTPUT;
    gpio_init_structure.gpio_fen = GPIO_FEN_PER;
    gpio_init_structure.gpio_mode = GPIO_MODE_DIGITAL;
    gpio_init_structure.gpio_drv = GPIO_DRV_8MA;
    gpio_init(GPIOF_REG, &gpio_init_structure);

    gpio_func_mapping(TMR4MAP_G2);      // PWM1:PF2

    tmr_base_init_struct.clock_source = TMR_INC_SOURCE;
    tmr_base_init_struct.increase_clock = TMR_COUNTER_RISING;
    tmr_base_init_struct.period = period;
    tmr_base_init_struct.pwm_mode = TMR_PWM_MODE_1;
    tmr_base_init(TMR4, &tmr_base_init_struct);

    tmr_cmd(TMR4, ENABLE);

    tmr_set_pwm1_duty(TMR4, 2500);
}
