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

2019-10-16 03:56发布

#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之前么,怎么会影响到溢出时间勒....


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
南有乔木
1楼-- · 2019-10-16 07:39
正点原子
2楼-- · 2019-10-16 13:28
仿真看寄存器变化情况。就可以找到问题。
正点原子
3楼-- · 2019-10-16 16:29
仿真看对应寄存器变化情况。就可以找到问题。
南有乔木
4楼-- · 2019-10-16 16:53
正点原子 发表于 2016-12-8 21:45
仿真看寄存器变化情况。就可以找到问题。

仿真了,没看出来,我再仿真试试吧

一周热门 更多>