查看: 12545|回复: 14

[MPC] MPC5604P进不去中断(已解决)

[复制链接]

该用户从未签到

9

主题

44

帖子

0

注册会员

Rank: 2

积分
141
最后登录
1970-1-1
发表于 2014-4-30 23:20:39 | 显示全部楼层 |阅读模式
我想用PIT实现一个0.5ms的定时中断,分别初始化配置了,可是中断函数 Pit0ISR就是不执行呢,在Mode Entry Module里也配置了PIT的RUN模式,还是不行,
void initINTC(void)

  INTC_InstallINTCInterruptHandler(Pit0ISR, 59, 5);                      /*将PIT0 ISR安装到中断向量表中*/
 
  INTC.MCR.B.HVEN = 0;                                                                    /* Initialize for SW vector mode */
  INTC.MCR.B.VTES = 0;                                                                      /* Use default vector table 4B offsets */
}
void initPIT(void)
{
  PIT.PITMCR.R = 0x00000001;                                              /* Enable PIT and configure stop in debug mode */
  PIT.CH[0].LDVAL.R = 0x7D00;                                             /* x/sysclks = Timeout=0.5ms */
  PIT.CH[0].TCTRL.R = 0x00000003 ;                                        /* Enable PIT0 interrupt & start PIT counting */
  INTC.PSR[59].R = 0x01;                                                  /* PIT 1 interrupt vector with priority 1 */
 
}
void enableIrq(void)
{
  INTC.CPR.B.PRI = 0;                                             /* Lower INTC's current priority */
  asm(" wrteei 1");                                            /* Enable external interrupts */
}
void initModeAndClks
{
...
...
...
ME.PCTL[92].R = 0x01;              /* MPC56xxP PIT0: select ME.RUNPC[1] */ ?????这句是否有必要
/* PIT0 RUN configuration */
}
 
下面是中断执行函数:
void Pit0ISR(void)
{
/* CLear PIT 0 flag by writing 1 */
 PIT.CH[0].TFLG.B.TIF = 1;
 
  PIT_CN++;
  
  SIU.GPDO[36].B.PDO = 1;         //pin5
  
}
我知道答案 目前已有14人回答
回复

使用道具 举报

该用户从未签到

9

主题

44

帖子

0

注册会员

Rank: 2

积分
141
最后登录
1970-1-1
 楼主| 发表于 2014-5-2 21:51:27 | 显示全部楼层

RE:MPC5604P进不去中断

哪位大神看一下,到底哪地方出错了,求指教,非常感谢
回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

44

帖子

0

注册会员

Rank: 2

积分
141
最后登录
1970-1-1
 楼主| 发表于 2014-5-4 21:50:44 | 显示全部楼层

RE:MPC5604P进不去中断

还是自己去琢磨吧
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6031
    最后登录
    2025-8-21
    发表于 2014-5-5 09:02:10 | 显示全部楼层

    回复:MPC5604P进不去中断

    回复第 3 楼 于2014-05-04 21:50:44发表:
    还是自己去琢磨吧 

    楼主你好,我已将你的问题转给我们Power PC 5的工程师。
    请问你是在调试时设置断点发现无法进入PIT中断,还是非调试状态下观察IO口没有翻转得出的这结论呢?
    因为很多芯片与timer有关的均会存在这种debug情况下timer运行状态的选择。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9

    主题

    44

    帖子

    0

    注册会员

    Rank: 2

    积分
    141
    最后登录
    1970-1-1
     楼主| 发表于 2014-5-5 21:52:21 | 显示全部楼层

    RE:MPC5604P进不去中断

    你好,Robi,我没有设置断点,就是观察IO口没有跳转得出的结论,我一直怀疑和Mode Entry Module里的配置有关系,中断向量这块应该是没有问题的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6031
    最后登录
    2025-8-21
    发表于 2014-5-6 10:41:43 | 显示全部楼层

    回复:MPC5604P进不去中断

    回复第 5 楼 于2014-05-05 21:52:21发表:
    你好,Robi,我没有设置断点,就是观察IO口没有跳转得出的结论,我一直怀疑和Mode Entry Module里的配置有关系,中断向量这块应该是没有问题的。 

    没有用过PowerPC架构的芯片,不过如果你怀疑PIT没有正常运行:
    可以通过软件读取CVALn值判断是否在增加 or 循环读取TFLGn标志看PIT是否溢出。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9

    主题

    44

    帖子

    0

    注册会员

    Rank: 2

    积分
    141
    最后登录
    1970-1-1
     楼主| 发表于 2014-5-27 20:51:16 | 显示全部楼层

    RE:MPC5604P进不去中断

    问题已解决了,谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6031
    最后登录
    2025-8-21
    发表于 2014-5-28 08:59:08 | 显示全部楼层

    回复:MPC5604P进不去中断

    回复第 7 楼 于2014-05-27 20:51:16发表:
    问题已解决了,谢谢 

    不用客气 都没帮上你什么忙
    如果楼主方便的话,是否可以与大家分享一下此问题的解决方法呢?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9

    主题

    44

    帖子

    0

    注册会员

    Rank: 2

    积分
    141
    最后登录
    1970-1-1
     楼主| 发表于 2014-5-29 22:38:06 | 显示全部楼层

    RE:MPC5604P进不去中断(已解决)

    好的,
    中断向量配置没有问题,入口函数也没问题,就是在MC_ME里需要配置一下,即ME_PCTL[],选择对应的RUN_PC以及确保使能,不然读取CVALn值总是为0,在调试很多模块遇到问题时,都是MC_ME里面配置引起的。这个模块很重要啊。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6031
    最后登录
    2025-8-21
    发表于 2014-5-30 09:37:31 | 显示全部楼层

    回复:MPC5604P进不去中断(已解决)

    回复第 9 楼 于2014-05-29 22:38:06发表:
    好的,
    中断向量配置没有问题,入口函数也没问题,就是在MC_ME里需要配置一下,即ME_PCTL[],选择对应的RUN_PC以及确保使能,不然读取CVALn值总是为0,在调试很多模块遇到问题时,都是MC_ME里面配置引起的。这个模块很重要啊。 

    非常感谢你与大家分享问题的解决方法!
    这样行为对于我们共建飞思卡尔社区良好的讨论氛围十分重要
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-10 06:55 , Processed in 0.104537 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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