//timer.c
#include "timer.h"
void timer_base_init(uint32_t x100ns)
{
timer_parameter_struct timer_initpara;
/* enable the peripherals clock */
rcu_periph_clock_enable(USER_TIMER1_CLK); //120M
/* deinit a TIMER */
timer_deinit(USER_TIMER1);
/* initialize TIMER init parameter struct */
timer_struct_para_init(&timer_initpara);
/* TIMER2 configuration */
timer_initpara.prescaler = 12 - 1;
timer_initpara.alignedmode = TIMER_COUNTER_EDGE;
timer_initpara.counterdirection = TIMER_COUNTER_UP;
timer_initpara.period = x100ns - 1;
timer_initpara.clockdivision = TIMER_CKDIV_DIV1;
timer_init(USER_TIMER1, &timer_initpara);
/* clear channel 0 interrupt bit */
timer_interrupt_flag_clear(USER_TIMER1, TIMER_INT_FLAG_UP);
/* enable the TIMER interrupt */
timer_interrupt_enable(USER_TIMER1, TIMER_INT_UP);
/* enable a TIMER */
timer_enable(USER_TIMER1);
nvic_irq_enable(USER_TIMER1_IRQ, 0, 0);
}
void USER_TIMER1_IRQHandler(void)
{
if(SET == timer_interrupt_flag_get(USER_TIMER1, TIMER_INT_UP)) {
/* clear update interrupt bit */
timer_interrupt_flag_clear(USER_TIMER1, TIMER_INT_UP);
{
tp1_tog();
}
}
}
//timer.h
#ifndef __TIMER_H_
#define __TIMER_H_
#include "includes.h"
#define USER_TIMER1 TIMER1
#define USER_TIMER1_CLK RCU_TIMER1
#define USER_TIMER1_IRQ TIMER1_IRQn
#define USER_TIMER1_IRQHandler TIMER1_IRQHandler
#define T1US 10
#define T1MS (T1US*1000)
#define T10MS (T1MS*10)
void timer_base_init(uint32_t x100ns);
#endif
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/lljss1980/article/details/143107425
|