GDE103 延时不准问题

[复制链接]
1558|11
 楼主| andarm 发表于 2022-4-24 21:21 | 显示全部楼层 |阅读模式
本帖最后由 andarm 于 2022-4-25 20:40 编辑

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

-  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
天意无罪 发表于 2022-4-25 08:10 来自手机 | 显示全部楼层
延时1ms,实际延时12s?你这差距也太大了吧?官方会犯这种低级错误?
sonicll 发表于 2022-4-25 08:50 | 显示全部楼层
你需要确定一下真实的系统时钟频率和你SystemCoreClock这个变量的值是否一致
呐咯密密 发表于 2022-4-25 12:01 | 显示全部楼层
会差几个或十几个微秒都是可能的,你这个误差太离谱,时钟没问题吗
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++;
   }
}
 楼主| andarm 发表于 2022-4-25 20:43 | 显示全部楼层
天意无罪 发表于 2022-4-25 08:10
延时1ms,实际延时12s?你这差距也太大了吧?官方会犯这种低级错误?

描述有错误 ,是168,000 ,变成180,000  ; 一开始看到单位是秒,以为是12秒。现在就搞不懂keil中internal是否表示系统的运行时间有一个疑惑。
 楼主| andarm 发表于 2022-4-25 20:44 | 显示全部楼层
lvben5d 发表于 2022-4-25 15:50
1ms级别的延迟,直接用个for循环,注意你时钟主频,大概调试差点us 就符合实际了。    下面是我自 ...

是可以这样子做; 但疑问为什么internal中的这个sec变量,代表什么?
 楼主| andarm 发表于 2022-4-25 20:46 | 显示全部楼层
sonicll 发表于 2022-4-25 08:50
你需要确定一下真实的系统时钟频率和你SystemCoreClock这个变量的值是否一致

如果实测系统是时钟,这不是内部的?
 楼主| andarm 发表于 2022-4-27 20:43 | 显示全部楼层
应该采用秒表和对定时的计算,发现时间准确; 只是keil上internal 的sec并不是秒的单位。
yangxiaoshan 发表于 2022-5-31 11:08 | 显示全部楼层
你这离了个大普。。。。
kiwis66 发表于 2022-6-4 21:46 | 显示全部楼层
不会的,一定是哪里没配置好,或者计算错了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

11

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部