打印

GDE103 延时不准问题

[复制链接]
730|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
andarm|  楼主 | 2022-4-24 21:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 andarm 于 2022-4-25 20:40 编辑

# 采用官方的demo ,发现延时不准- delay_1ms(1000) 竟然是200毫秒。 这是什么原因?

-  SystemCoreClock =120000000
void systick_config(void)
{
    /* setup systick timer for 1000Hz interrupts */
    if(SysTick_Config(SystemCoreClock / 1000U)){
        /* capture error */
        while(1){
        }
    }
    /* configure the systick handler priority */
    NVIC_SetPriority(SysTick_IRQn, 0x00U);
}
void delay_1ms(uint32_t count)
{
    delay = count;

    while(0U != delay){
    }
}

/*!
    \brief      delay decrement
    \param[in]  none
    \param[out] none
    \retval     none
*/
void delay_decrement(void)
{
    if(0U != delay){
        delay--;
    }
}







7097262669678c0cf3.png (421.58 KB )

7097262669678c0cf3.png

使用特权

评论回复
沙发
天意无罪| | 2022-4-25 08:10 | 只看该作者
延时1ms,实际延时12s?你这差距也太大了吧?官方会犯这种低级错误?

使用特权

评论回复
板凳
sonicll| | 2022-4-25 08:50 | 只看该作者
你需要确定一下真实的系统时钟频率和你SystemCoreClock这个变量的值是否一致

使用特权

评论回复
地板
呐咯密密| | 2022-4-25 12:01 | 只看该作者
会差几个或十几个微秒都是可能的,你这个误差太离谱,时钟没问题吗

使用特权

评论回复
5
lvben5d| | 2022-4-25 15:50 | 只看该作者
1ms级别的延迟,直接用个for循环,注意你时钟主频,大概调试差点us 就符合实际了。    下面是我自己做的  MS_UPPER宏定义跟时钟主频有关。
void delay_ms(unsigned char ctr)
{
   unsigned short int m;
   volatile unsigned char nop=1;
   for(; ctr>0; ctr--)
   {
       for(m=0; m<MS_UPPER; m++)
       nop++;
   }
}

使用特权

评论回复
6
andarm|  楼主 | 2022-4-25 20:43 | 只看该作者
天意无罪 发表于 2022-4-25 08:10
延时1ms,实际延时12s?你这差距也太大了吧?官方会犯这种低级错误?

描述有错误 ,是168,000 ,变成180,000  ; 一开始看到单位是秒,以为是12秒。现在就搞不懂keil中internal是否表示系统的运行时间有一个疑惑。

使用特权

评论回复
7
andarm|  楼主 | 2022-4-25 20:44 | 只看该作者
lvben5d 发表于 2022-4-25 15:50
1ms级别的延迟,直接用个for循环,注意你时钟主频,大概调试差点us 就符合实际了。    下面是我自 ...

是可以这样子做; 但疑问为什么internal中的这个sec变量,代表什么?

使用特权

评论回复
8
andarm|  楼主 | 2022-4-25 20:46 | 只看该作者
sonicll 发表于 2022-4-25 08:50
你需要确定一下真实的系统时钟频率和你SystemCoreClock这个变量的值是否一致

如果实测系统是时钟,这不是内部的?

使用特权

评论回复
9
andarm|  楼主 | 2022-4-27 20:43 | 只看该作者
应该采用秒表和对定时的计算,发现时间准确; 只是keil上internal 的sec并不是秒的单位。

使用特权

评论回复
10
yangxiaoshan| | 2022-5-31 11:08 | 只看该作者
你这离了个大普。。。。

使用特权

评论回复
11
kiwis66| | 2022-6-4 21:46 | 只看该作者
不会的,一定是哪里没配置好,或者计算错了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

9

帖子

0

粉丝