#include "bsp/bsp_driver.h" void sched_timer_enable(u32 us) { crm_periph_clock_enable(SCHED_TIMER_RCU, TRUE); tmr_reset(SCHED_TIMER); tmr_base_init(SCHED_TIMER, us-1, TIM_CLOCK_MHz-1); tmr_cnt_dir_set(SCHED_TIMER, TMR_COUNT_UP); tmr_clock_source_div_set(SCHED_TIMER, TMR_CLOCK_DIV1); tmr_counter_value_set(SCHED_TIMER, 0); tmr_flag_clear(SCHED_TIMER, TMR_OVF_FLAG); tmr_interrupt_enable(SCHED_TIMER, TMR_OVF_INT, TRUE); nvic_irq_enable(SCHED_TIMER_IRQ, SCHED_TIMER_IRQ_PRIORITY, 0); tmr_counter_enable(SCHED_TIMER, TRUE); } __weak void Sched_MC_mTask(void) {} void SCHED_TIMER_IRQHandler(void) { if(SET == tmr_flag_get(SCHED_TIMER, TMR_OVF_FLAG)) { tmr_flag_clear(SCHED_TIMER, TMR_OVF_FLAG); Sched_MC_mTask(); } }