使用Cortex M3通用定时器发现一个奇怪的问题,求解!

2019-03-24 14:28发布

MCU: Stellaris® LM3S608 Microcontroller编译环境: IAR Embedded Workbench 5.5问题描述:初始化3个通用定时器,均配置为32位周期性定时器,使能了定时器中断和定时器中断源  IntEnable(ulIntTimer);    TimerIntEnable(ulBase, ulIntFlags);但是此处没有使能定时器(TimerEnable(TIMER0_BASE, TIMER_A);)接着初始化了其他的外设以及驱动,最后运行系统,使能IntMasterEnable();和定时器中断TimerEnable(TIMER0_BASE, TIMER_A);现象:定时器初始化完毕之后,在没有使能定时器的情况下,发现代码进入了定时器中断处理函数。(通过在中断处理函数中放置while(1);捕获)如果将IntEnable(ulIntTimer);    TimerIntEnable(ulBase, ulIntFlags);放置所有外设以及驱动初始化之后,运行系统之前,就不会出现这种问题。在Stellaris® LM3S5K31 Microcontroller上也出现过类似情况。问题是没有使能定时器的时候,问什么会进入定时器中断呢?勘误上也没有此类问题描述。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
azhiking
2019-03-25 02:07
原帖由 tekkon 于 2012-4-25 21:32 发表
如果你用RTOS了 会不会是你的RTOS使能了某个定时器

或者可以在初始化外设以及驱动之前 使用IntMasterDisable()
在运行系统前再使能

亦或者在你的task里再使能定时器而不是在外设初始化的时候


测试这个问题时没有使用RTOS,初始化外设以及驱动之前确实没有关闭处理器中断,IntMasterDisable()
但是处理器中断默认应该是关闭的吧。

不过我再验证一下,看看使能处理器中断的时候,处理器中断是否已经使能……

一周热门 更多>

相关问题

    相关文章