打印
[疑难问答]

使用STM8L-discovery时发现的问题

[复制链接]
832|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bbapple|  楼主 | 2016-7-25 19:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下是我想用定时器实现1ms延时,使用了内部高速晶振,程序如下
static void TIM1_Config(void)
{
    TIM1_SetCounter(0);  
   //128分频 向上计数模式 使用HSI-16MHz
    TIM1_TimeBaseInit(128,TIM1_CounterMode_Up,124,0);

    TIM1_ARRPreloadConfig(DISABLE);
    /* Clear TIM1 update flag */
    TIM1_ClearFlag(TIM1_FLAG_Update);
    /* Enable update interrupt */
    TIM1_ITConfig(TIM1_IT_Update, ENABLE);
    /* enable interrupts */
    enableInterrupts();

    /* Enable TIM1 */
    TIM1_Cmd(ENABLE);
}

将主时钟HSI-16MHz进行128分频,向上计数到124,即125次,得到触发中断时间128/16*125=1000us即一毫秒,这个经测试准确无误,同理我想得到10us进中断,于是将初始化程序改动如下


static void TIM1_Config(void)
{
    TIM1_SetCounter(0);  
   //16分频 向上计数
    TIM1_TimeBaseInit(16,TIM1_CounterMode_Up,9,0);

    TIM1_ARRPreloadConfig(DISABLE);
    /* Clear TIM1 update flag */
    TIM1_ClearFlag(TIM1_FLAG_Update);
    /* Enable update interrupt */
    TIM1_ITConfig(TIM1_IT_Update, ENABLE);
    /* enable interrupts */
    enableInterrupts();

    /* Enable TIM1 */
    TIM1_Cmd(ENABLE);
}


理论上讲16分频后得到1MHz,向上计数到9为十次,应有10us进一次中断 可是经实际测量进中断的时间为20us左右
我又改动如下
TIM1_TimeBaseInit(16,TIM1_CounterMode_Up,4,0); 发现触发一次中断仍为20us

进一步改动,发现无论分频系数和重载值怎么改动 进中断的时间最小约为20us,不能再小了

有没有人碰见过这个问题?如何解决?与使用的内部晶振有关吗?
沙发
xia00| | 2016-7-25 19:57 | 只看该作者
10us中断不能识别,中断也要反应时间的。

使用特权

评论回复
板凳
hfdy01| | 2016-7-25 20:06 | 只看该作者
是不是就直接在主函数里面等待定时器溢出改变中断标志位?中断函数里面什么都不用写是不。。

使用特权

评论回复
地板
CallReceiver| | 2016-7-25 20:10 | 只看该作者
可以看看这个

TIME4应用.pdf

86.85 KB

使用特权

评论回复
5
boy1990| | 2016-7-25 20:18 | 只看该作者
的确是这样,中断处理要占用时间。

使用特权

评论回复
6
sourceInsight| | 2016-7-25 20:22 | 只看该作者
就算中断函数里面只清标志位   也不会达到你下面的要求的啊

使用特权

评论回复
7
shashaa| | 2016-7-25 20:30 | 只看该作者
想得到更小的定时周期,唯一的方法就是提高时钟频率吧!

使用特权

评论回复
8
qiangweii| | 2016-7-25 20:33 | 只看该作者
将主时钟的时钟频率提高到16M,提高中断处理速度。

使用特权

评论回复
9
litengg| | 2016-7-25 20:41 | 只看该作者
在16MHZ的时候连个波形都没有还是在1M的时候没有波形?主时钟频率要快。

使用特权

评论回复
10
feiqi1| | 2016-7-25 20:50 | 只看该作者
你16M的时候,那个数字9也要相应改才行啊。

使用特权

评论回复
11
台湾笙泉MCU| | 2016-7-26 09:05 | 只看该作者
学习了

使用特权

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

本版积分规则

293

主题

1811

帖子

1

粉丝