3098|0

79

帖子

3

TA的资源

一粒金砂(中级)

楼主
 

【GD32L233C-START评测】测评之三:使用定时器time5精确延时测量 [复制链接]

本帖最后由 mameng 于 2022-1-22 20:45 编辑

(一)​GD32L233C-START例子程序用的是SysTick延时:

    改造main函数:

  

  while(1) {



gpio_bit_set(GPIOA, GPIO_PIN_7);

gpio_bit_set(GPIOA, GPIO_PIN_1);

delay_1ms(1);

gpio_bit_reset(GPIOA, GPIO_PIN_7);

gpio_bit_reset(GPIOA, GPIO_PIN_1);

delay_1ms(1);



    }

 

 

测量PA1示波波形:

 

   可以看出正脉冲宽度可以看出SysTick延时1.0Ms,非常精确,脉冲上升沿时间20.us,表示电平变化时间,这与示波器带宽和采样精度有关,不是GPIO电平变化 指令周期需要的时间。

 

(二)采用定时器延时:注意GD32L233C主频64M

   计算方式: prescaler(预分频器值):64M/(63+1)=1000KHz

                period(周期值) (999+1)/1000000=1ms

  测定不同配置下定时器延时精度:

 

void TIMER5_Config(void)

{

        timer_parameter_struct timer_initpara;      //计时器初始化参数结构定义



        rcu_periph_clock_enable(RCU_TIMER5);



        timer_deinit(TIMER5);



        /*prescaler(预分频器值):64M/(63+1)=1000KHz

                period(周期值) (999+1)/1000000=1ms

        */

timer_initpara.prescaler        = 63;

timer_initpara.alignedmode       = TIMER_COUNTER_EDGE;

timer_initpara.counterdirection  = TIMER_COUNTER_UP;

timer_initpara.period            = 999;

timer_initpara.clockdivision     = TIMER_CKDIV_DIV1;

timer_init(TIMER5,&timer_initpara);



        timer_interrupt_enable(TIMER5, TIMER_INT_UP);//使能TIMER5中断

        nvic_irq_enable(TIMER5_IRQn, 0);//启用TIMER5的NVIC请求,优先级为0(0~3)

        

        timer_auto_reload_shadow_enable(TIMER5);

        timer_enable(TIMER5);                  

}



void TIMER5_IRQHandler(void)

{

        static uint8_t timer_cont=0;

        if(RESET != timer_interrupt_flag_get(TIMER5, TIMER_INT_FLAG_UP))

        {



gpio_bit_toggle(GPIOA, GPIO_PIN_6 | GPIO_PIN_8);

       }

        timer_interrupt_flag_clear(TIMER5, TIMER_INT_FLAG_UP);

}

测量PA6波形

 

 

 

 timer_initpara.period  999,改为99,定时器产生100uS延时。

 

 

 

timer_initpara.period  999,改为9,定时器产生10uS延时。

 

 

可见定时器延时非常精准


 

 


此帖出自GD32 MCU论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表