#include "timer.h"

volatile uint32_t delay_counter = 0; // 延时计数器
void timer5_init(){
	rcu_periph_clock_enable(RCU_TIMER5); // 使能Timer5时钟

    timer_parameter_struct timer_init_struct;
    timer_deinit(TIMER5); // 复位Timer5配置

    timer_struct_para_init(&timer_init_struct);

    timer_init_struct.prescaler = 119; // 定时器时钟为120MHz
    timer_init_struct.alignedmode = TIMER_COUNTER_EDGE; // 边沿对齐模式
    timer_init_struct.counterdirection = TIMER_COUNTER_UP; // 向上计数
    timer_init_struct.period = 999; // 计数器周期为1000，即10kHz下1秒钟
    timer_init_struct.clockdivision = TIMER_CKDIV_DIV1; // 时钟分频1
    timer_init_struct.repetitioncounter = 0; // 重复计数器值

    timer_init(TIMER5, &timer_init_struct);

    timer_interrupt_enable(TIMER5, TIMER_INT_UP); // 使能Timer5更新中断
    nvic_irq_enable(TIMER5_IRQn, 0, 0); // 使能Timer5中断，并设置优先级为0
    timer_enable(TIMER5); // 启动Timer5
}
//启动定时器
void timer5_start(void){
	timer_enable(TIMER5);
}
//关闭定时器
void timer5_stop(void){
	timer_disable(TIMER5);
}

void TIMER5_IRQHandler(void)
{
    if (timer_interrupt_flag_get(TIMER5, TIMER_INT_UP) != RESET)
    {
        timer_interrupt_flag_clear(TIMER5, TIMER_INT_UP); // 清除中断标志
        delay_counter++; // 延时计数器加1
    }
}




