查看: 3608|回复: 5

[求助] KEA64初始化FTM为EPWM模式总是进入hard fault中断

[复制链接]

该用户从未签到

4

主题

24

帖子

0

注册会员

Rank: 2

积分
154
最后登录
1970-1-1
发表于 2016-3-13 17:32:25 | 显示全部楼层 |阅读模式
在KEA64芯片中初始化FTM为EPWM模式总是进入hard fault中断,具体表现为对写保护位WPDIS位置位时马上就会进入hard fault中断,但是如果不去掉写保护,后面设置EPWM模式时MSB,ELSB,ELSA也会引起hard fault中断,请用过的朋友们提点建议。
void FTM0_Init()
{
        SIM->SCGC |= SIM_SCGC_FTM0_MASK; /* Enable Clock for FTM0 */
        SIM->PINSEL &= ~SIM_PINSEL_FTM0PS1_MASK;/*FTM0_CH1=PTA1*/
        SIM->PINSEL &= ~SIM_PINSEL_FTM0PS0_MASK;/*FTM0_CH0=PTA0*/
       

        FTM0->MODE |= FTM_MODE_WPDIS_MASK;/*DISABLE WRITE PROTECTION*/此处出现问题
        FTM0->SC |= FTM_SC_PS(4);        /* Select Preescaler in this case 16. 20 Mhz /16 =1.25 Mhz. */
                                                                /* Counter increase by one every 0.8 us */
       
       
        /* Enable Channle 0*/
        FTM0->CONTROLS[0].CnSC |= FTM_CnSC_MSB_MASK;/*Channel as EPWM,HIGH FIRST*/
        FTM0->CONTROLS[0].CnSC |= FTM_CnSC_ELSB_MASK;
        FTM0->CONTROLS[0].CnSC &= ~FTM_CnSC_ELSA_MASK;
        FTM0->CONTROLS[0].CnSC &= ~FTM_CnSC_CHIE_MASK; /* Disable channel 0 interrupt */
        FTM0->SC &= ~FTM_SC_TOIE_MASK;/*Disable FTM0 overflow interrupt*/
        //FTM0->MODE &= ~FTM_MODE_FTMEN_MASK;/*???*/
        //FTM0->COMBINE = 0;
        FTM0->OUTMASK = 0xFE;/*only channel 0 active*/
        FTM0->CNT = 0;/*CNT CLEAR*/
        FTM0->CNTIN = 0;
        FTM0->MOD = 1249;/*period=1000US*/
        FTM0->CONTROLS[0].CnV = 625;/*high=500us*/         
                                
        FTM0->SC |= FTM_SC_CLKS(1); /*FTM0 use system clock and FTM0 open*/
}

我知道答案 目前已有5人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    2016-12-28 09:35
  • 签到天数: 19 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    4

    主题

    178

    帖子

    0

    高级会员

    Rank: 4

    积分
    593
    最后登录
    2017-8-22
    发表于 2016-3-13 22:01:57 | 显示全部楼层
    我也在学习中,还没有看懂这个,帮不了你。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2016-3-14 11:12:05 | 显示全部楼层
    FTM0和FTM1没有FTM_MODE寄存器,我怀疑你是读写了不存在的寄存器导致的hardfault 2016-03-14_11-11-20.jpg
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    24

    帖子

    0

    注册会员

    Rank: 2

    积分
    154
    最后登录
    1970-1-1
     楼主| 发表于 2016-3-14 12:20:22 | 显示全部楼层
    FSL_TICS_ZP 发表于 2016-3-14 11:12
    FTM0和FTM1没有FTM_MODE寄存器,我怀疑你是读写了不存在的寄存器导致的hardfault
    ...

    解决了,确实是FTM0和FTM1没有相应的MODE寄存器,写操作会造成硬件中断,谢谢技术支持。
    不过这个表竟然在RM手册的第三章,真的是想不到。还有参考的苏大写的那本KEA书,看来他们程序也写错了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2016-3-14 17:30:45 | 显示全部楼层
    物我两相忘 发表于 2016-3-14 12:20
    解决了,确实是FTM0和FTM1没有相应的MODE寄存器,写操作会造成硬件中断,谢谢技术支持。
    不过这个表竟然 ...

    嗯嗯,解决了就行,下次注意就可以啊!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    40

    主题

    500

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1089
    最后登录
    2025-1-13
    发表于 2016-3-14 20:57:36 | 显示全部楼层
    进来看看!!!!!!
    xingxiny75@gmail.com.png
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-21 16:36 , Processed in 0.099816 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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