打印
[技术问题解答]

PE建IAR工程总进PE_ISR(Cpu_Interrupt)中断

[复制链接]
2428|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhxingyu|  楼主 | 2015-9-26 22:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用PE建的IAR工程,使能了LPTMR低功耗计时,当加上NVIC_ISER |= 1 << (28%32);这句后就总在PE_ISR(Cpu_Interrupt)
{
  /* This code can be changed using the CPU bean property "Build Options / Unhandled int code" */
  /* asm (HALT) */
}这里死循环,请问是什么问题?

相关帖子

沙发
zhxingyu|  楼主 | 2015-9-27 15:51 | 只看该作者
有朋友遇到这种情况吗?

使用特权

评论回复
板凳
李香兰| | 2015-9-27 21:05 | 只看该作者
是不是低功耗计时时不允许浮点数计算?

使用特权

评论回复
地板
FSL_TICS_ZJJ| | 2015-9-28 09:12 | 只看该作者
把你低功耗PE中LPTMR配置截个图看看。
LPTMR的时钟开启了没有?

使用特权

评论回复
5
zhxingyu|  楼主 | 2015-9-28 11:45 | 只看该作者
本帖最后由 zhxingyu 于 2015-9-28 11:49 编辑
FSL_TICS_ZJJ 发表于 2015-9-28 09:12
把你低功耗PE中LPTMR配置截个图看看。
LPTMR的时钟开启了没有?

LPTMR的初始化不是在PE里配置的,在PE里只是简单配置下时钟模式(BLPE)就转为IAR工程了,所有的模块(含LPTMR模块)都是在IAR里添加的。LPTMR初始化例程是按MKL25Z的,实际所用新片是MKL05.

使用特权

评论回复
6
FSL_TICS_ZJJ| | 2015-9-28 12:12 | 只看该作者
zhxingyu 发表于 2015-9-28 11:45
LPTMR的初始化不是在PE里配置的,在PE里只是简单配置下时钟模式(BLPE)就转为IAR工程了,所有的模块(含LP ...

LPTMR的时钟使能没有?
SIM_SCGC5中的LPTMR位有没有使能?

使用特权

评论回复
7
DreamofOven| | 2015-9-28 13:20 | 只看该作者
LPTMR功能使能了吗

使用特权

评论回复
8
zhxingyu|  楼主 | 2015-9-28 13:47 | 只看该作者
FSL_TICS_ZJJ 发表于 2015-9-28 12:12
LPTMR的时钟使能没有?
SIM_SCGC5中的LPTMR位有没有使能?

使能了
SIM_SCGC5 |= SIM_SCGC5_LPTMR_MASK;
LPTMR0_CSR |= LPTMR_CSR_TCF_MASK | LPTMR_CSR_TIE_MASK;
LPTMR0_PSR |= LPTMR_PSR_PCS(1) | LPTMR_PSR_PBYP_MASK;
LPTMR0_CMR = 1;
LPTMR0_CSR |= LPTMR_CSR_TEN_MASK;
NVIC_ICPR |= 1<<(28%32);
NVIC_ISER |= 1<<(28%32);
加入最后一句就会进入PR_ISR(cpu_interrupt)这个中断

使用特权

评论回复
9
FSL_TICS_ZJJ| | 2015-9-28 14:06 | 只看该作者
zhxingyu 发表于 2015-9-28 13:47
使能了
SIM_SCGC5 |= SIM_SCGC5_LPTMR_MASK;
LPTMR0_CSR |= LPTMR_CSR_TCF_MASK | LPTMR_CSR_TIE_MASK;

总中断使能了没有?
另外,中断服务函数和你的中断向量表有没有连接上?

使用特权

评论回复
10
zhxingyu|  楼主 | 2015-9-28 15:20 | 只看该作者
FSL_TICS_ZJJ 发表于 2015-9-28 14:06
总中断使能了没有?
另外,中断服务函数和你的中断向量表有没有连接上? ...

总中断没有使能,因是PE转的IAR,总中断使能句没有找到。

使用特权

评论回复
11
FSL_TICS_ZJJ| | 2015-9-28 16:55 | 只看该作者
zhxingyu 发表于 2015-9-28 15:20
总中断没有使能,因是PE转的IAR,总中断使能句没有找到。

你用的什么芯片呢?
你把你的PE转IAR的整个工程上传,我帮你看看吧,这样比较快。
另外,你自己再检查下,你的中断服务函数,和你的中断向量表规定的名称有没有一致,如果不一致会导致中断产生,找不到中断服务函数出错。

使用特权

评论回复
12
zhxingyu|  楼主 | 2015-9-28 21:34 | 只看该作者
本帖最后由 zhxingyu 于 2015-9-29 08:22 编辑
FSL_TICS_ZJJ 发表于 2015-9-28 16:55
你用的什么芯片呢?
你把你的PE转IAR的整个工程上传,我帮你看看吧,这样比较快。
另外,你自己再检查下 ...

芯片型号为MKL26Z32,附件为整个工程,谢谢!

PE_IAR.rar

1.47 MB

使用特权

评论回复
13
zhxingyu|  楼主 | 2015-9-29 15:23 | 只看该作者
FSL_TICS_ZJJ 发表于 2015-9-28 16:55
你用的什么芯片呢?
你把你的PE转IAR的整个工程上传,我帮你看看吧,这样比较快。
另外,你自己再检查下 ...

你好,工程上传了麻烦帮我看看,谢谢!

使用特权

评论回复
14
FSL_TICS_ZJJ| | 2015-9-30 09:52 | 只看该作者
zhxingyu 发表于 2015-9-28 21:34
芯片型号为MKL26Z32,附件为整个工程,谢谢!

楼主你好,刚帮你检查过。
你使能了LPTMR的中断,但是你的中断服务函数在哪里?
这是一点,另外, vectors中的中断向量表中也没有看你定义的LPTMR的中断服务函数名称,还是(tIsrFunc)&Cpu_Interrupt,
所以,一旦你开启中断,但是找不到中断服务函数,当然要进CPU_interrupt了。
你需要把中断服务函数加上,并在中断向量表中把你的中断服务函数名字放进去。

使用特权

评论回复
15
zhxingyu|  楼主 | 2015-9-30 09:58 | 只看该作者
FSL_TICS_ZJJ 发表于 2015-9-30 09:52
楼主你好,刚帮你检查过。
你使能了LPTMR的中断,但是你的中断服务函数在哪里?
这是一点,另外, vector ...

好的 ,谢谢!我试试。

使用特权

评论回复
16
FSL_TICS_ZJJ| | 2015-9-30 10:18 | 只看该作者
zhxingyu 发表于 2015-9-30 09:58
好的 ,谢谢!我试试。

其实这个问题,我在11楼就问你了。
使能中断,一定要有中断服务函数,否则中断产生,代码无处去,只能去cpu中断那了。

使用特权

评论回复
17
FSL_TICS_ZJJ| | 2015-9-30 10:18 | 只看该作者
楼主如果还有问题,欢迎继续交流。
如果问题解决了,还请帮我及时结贴哦。

使用特权

评论回复
18
zhxingyu|  楼主 | 2015-10-2 15:58 | 只看该作者
FSL_TICS_ZJJ 发表于 2015-9-30 10:18
其实这个问题,我在11楼就问你了。
使能中断,一定要有中断服务函数,否则中断产生,代码无处去,只能去c ...

有中断函数的,你看下工程里的“irs.c”文件里,void lptmr_isr(void)
{
       LPTMR0_CSR |= LPTMR_CSR_TCF_MASK;/* lptmr比较标志位清除          */
       LPTMR0_CSR = ( LPTMR_CSR_TEN_MASK | LPTMR_CSR_TIE_MASK | LPTMR_CSR_TCF_MASK  );
      
       //--------------------------------
        if(! --BasicCounter)
        {
                  BasicCounter = 1000;
                  BasicTimer = 1;
        }
        //--------------------------------
}  这里。

使用特权

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

本版积分规则

69

主题

309

帖子

3

粉丝