OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2254|回复: 4

103的板子做通用定时器中断试验,语句顺序不同的问题

[复制链接]

23

主题

323

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-11-8
在线时间
233 小时
发表于 2016-12-7 15:24:01 | 显示全部楼层 |阅读模式
4金钱
#include "timer.h"
#include "led.h"
#include "delay.h"
int main()
{

        LED_init();
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        delay_init();

    timer_init(7199,4199);//设置预分频系数为7199+1=7200,计数器时钟频率f=72Mhz/7200=10KHz,
    while(1)
    {
            PDout(2)=!PDout(2);
            delay_ms(200);
    }

}

主函数如上,如若按照格式把调用延时函数放在中断分组函数后,计数器的溢出时间就不是T=(4999+1)*(7199+1)/72M=500ms了,而远远大于这个值 约为5.6s。。。
当把延时函数放在最前面,就是和LED调用函数换顺序之后,计数器的溢出时间又是对的 约为500ms。

这是为什么呀,这些函数调用不是在timer_init之前么,怎么会影响到溢出时间勒....


亦余心之所善,
虽九死其犹未悔。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

23

主题

323

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-11-8
在线时间
233 小时
 楼主| 发表于 2016-12-7 15:24:02 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-12-8 21:45:27 | 显示全部楼层
仿真看寄存器变化情况。就可以找到问题。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-12-8 21:45:31 | 显示全部楼层
仿真看对应寄存器变化情况。就可以找到问题。
回复

使用道具 举报

23

主题

323

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-11-8
在线时间
233 小时
 楼主| 发表于 2016-12-9 08:25:16 | 显示全部楼层
正点原子 发表于 2016-12-8 21:45
仿真看寄存器变化情况。就可以找到问题。

仿真了,没看出来,我再仿真试试吧
亦余心之所善,
虽九死其犹未悔。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 11:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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