GD32E230C8T6定时器

GD32E230C8T6

  • 开始

开始

GD32E230C8T6的定时器使用

void timer_nsrt(void)
{
   timer_oc_parameter_struct timer_ocinitpara;
    timer_parameter_struct timer_initpara;
    timer_deinit(TIMER14);
    timer_struct_para_init(&timer_initpara);
    timer_initpara.prescaler         = 10799; 
    timer_initpara.alignedmode       = TIMER_COUNTER_EDGE;
    timer_initpara.counterdirection  = TIMER_COUNTER_UP;
    timer_initpara.period            = 20000;
    timer_initpara.clockdivision     = TIMER_CKDIV_DIV1;
    timer_init(TIMER14, &timer_initpara);
    timer_interrupt_enable(TIMER14, TIMER_INT_UP); //更新中断
    timer_enable(TIMER14);
}

中断选择相应timer

void TIMER14_IRQHandler(void)
{
    if(SET == timer_interrupt_flag_get(TIMER14, TIMER_INT_FLAG_UP)){
  /* clear channel 0 interrupt bit */
  timer_interrupt_flag_clear(TIMER14, TIMER_INT_FLAG_UP);
  time++;
    //20/分钟
  if(time == 600)//30分钟
  {
   step_configure = 0;
  }
  if(time == 1200)//一小时
  {
     time=0;
   step_configure = 3;
  }
 } 
}

你可能感兴趣的:(c语言)