硬汉嵌入式论坛

 找回密码
 立即注册
查看: 10915|回复: 1
收起左侧

[例程下载] STM32F4实验七:嘀嗒定时器微妙延时+ 函数执行时间测量(最小单位0.083us)+加入ARM官

[复制链接]

20

主题

55

回帖

20

积分

初级会员

积分
20
发表于 2012-12-22 21:21:11 | 显示全部楼层 |阅读模式
说明:
硬件:采用armfly的STM32F407VGT6核心板
软件:MDK 4.23
(1)由于需要调试,所以为每个例程都添加上串口和嘀嗒定时器。
(2)先不做高级实验,等把F4的基本外设都搞熟了,再弄。
(3)后面的高级例程打算用UCOS-III + emWin 5.16来做。
程序说明:

(1)在bsp_timer.c中加入bsp_DelayUS()的微妙延时函数
(2)用定时器6实现程序运行时间测量,最小单位0.083us。
        下面使用TIM6测量bsp_DelayUS(10)的运行时间,实际测试结果
        Time = 10.4us
        Time = 10.5us
        Time = 10.5us
        Time = 10.4us
        Time = 10.5us
        Time = 10.5us
        Time = 10.5us
        Time = 10.4us
        Time = 10.5us
        Time = 10.5us
        Time = 10.4us
        Time = 10.5us
        Time = 10.5us
        Time = 10.5us
      
结果可以接受,误差0.1us。
程序下载:
实验七:嘀嗒定时器 函数执行时间测量.zip (18.11 MB, 下载次数: 15849)
天天向上
回复

使用道具 举报

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
发表于 2013-5-6 21:03:35 | 显示全部楼层
增加的 bsp_DelayUS() 函数好用,不错!

摘录:
/*
*********************************************************************************************************
*    函 数 名: bsp_DelayUS
*    功能说明: us级延迟,延迟精度为正负1ms
*    形    参:n : 延迟长度,单位1 us
*    返 回 值: 无
*********************************************************************************************************
*/
void bsp_DelayUS(uint32_t n)
{
    uint32_t ticks;
    uint32_t told,tnow,tcnt=0;
    uint32_t reload = SysTick->LOAD; /* LOAD的值 */
                 
    ticks = n * 168;                  /* 需要的节拍数 */               
    tcnt = 0;
    told = SysTick->VAL;             /* 刚进入时的计数器值 */

    while(1)
    {
        tnow = SysTick->VAL;   
        if(tnow != told)
        {   
            /* 这里注意一下SYSTICK是一个递减的计数器 */   
            if(tnow < told)
            {
                tcnt += told - tnow;   
            }
            /* 重新装载递减 */
            else
            {
                tcnt += reload - tnow + told;   
            }        
            told = tnow;

            /*时间超过/等于要延迟的时间,则退出 */
            if(tcnt >= ticks)break;
        }  
    }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 00:04 , Processed in 0.154307 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表