智能车制作

标题: K60中断服务程序无法关联 [打印本页]

作者: _若失心便死╮    时间: 2013-1-13 14:57
标题: K60中断服务程序无法关联
我用MK60N512写PIT0中断,可是PIT0触发中断后,进不了中断服务程序,程序一直卡在那里了。哪位大神告诉我怎么关联中断服务程序啊
#include "Includes\includes.h"
#undef VECTOR_084
#define VECTOR_084 PIT0_IRQHandler //重新定义84 号中断为PIT0_IRQHandler 中断
void PIT0_IRQHandler();
void PIT0_IRQHandler()
{
PIT_TFLG(0)|=PIT_TFLG_TIF_MASK;       //清标志
GPIOA_PDOR=0;
DisableInterrupts; //禁止总中断
while(1);
}
void main(void)
{
uint32 run_counter,LightState=0X20000;
DisableInterrupts;     //禁止总中断
    hw_gpio_enable_port();  //确保端口时钟被加载
    hw_gpio_setgpio(PORT_A, 0X3C000); //配置PORTA14~17为GPIO口
    GPIOA_PDDR=0X3C000;
GPIOA_PDOR=0;
enable_timer(PIT0,1000);
wdog_disable();
EnableInterrupts;
while (1)              
{
  if(++run_counter >= 3000000)
  {
   GPIOA_PDOR=(~LightState)&0X3C000;  //切换LDE状态并清零未用端口
   run_counter = 0;
   LightState>>=1;
   if(LightState==0X2000)
    LightState=0X20000;
  } //end_if
} //end_while
} //end_main


作者: _若失心便死╮    时间: 2013-1-13 15:01
说明下,中断服务函数插入死循环是为了确认成功进入中断服务程序(小灯全亮),但我测试结果是根本进不了中断服务程序
作者: ivebeenready    时间: 2013-1-19 22:11
我也遇到了类似问题啊,设置好中断后,压根就进入不了中断服务程序中
作者: _若失心便死╮    时间: 2013-1-20 21:46
ivebeenready 发表于 2013-1-19 22:11
我也遇到了类似问题啊,设置好中断后,压根就进入不了中断服务程序中

话说  我已经解决了,在CW环境下直接修改默认中断向量表就好了
作者: HEYsir    时间: 2013-1-21 13:45
不知道你是否你已经解决,我还是把我个人的理解和你说下
以下回答的前提是:你用的CW
CW中默认中断服务程序是默认在那个开始文件下的,写到其他地方(自己写的C文件)是无效的,它默认的中断向量表都是一堆default_irs类似的东西,得修改成你自己对应的中断服务程序的名称。这是我实践得出来的结果。当然我没试过其他方式。
希望一起交流


作者: ivebeenready    时间: 2013-1-22 17:23
HEYsir 发表于 2013-1-21 13:45
不知道你是否你已经解决,我还是把我个人的理解和你说下
以下回答的前提是:你用的CW
CW中默认中断服务程 ...

我用的是jlink,在option->debugger->download下把use flasher loader选中就好了。
野火的那个3天学会pdf中说用jlink选不选中没关系,但是我用jlink不选的话,就刷新不了以前的程序,谢谢回复哈~

作者: 扼腕重来    时间: 2014-4-2 15:55
遇到同样问题:'(




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2