注册 登录
查看: 400|回复: 11

自己写的K60输入捕捉 为什么在捕捉中断里面翻转一个灯的电平就不得行呢

[复制链接]
发表于 2014-6-6 11:21:48 | 显示全部楼层 |阅读模式
void main()
{
    DisableInterrupts;  
    LED_INIT();  
    FTM_Input_init(FTM1, CH0, Rising);           //初始化FTM输入捕捉模式,上升沿触发            
    EnableInterrupts;                                 //开总中断

    while(1)
    {
      gpio_set(PORTA,13,LOW);                  //PTA9 产生低电平   

      time_delay_ms(1000);                     //延时一下   

      gpio_set(PORTA,13,HIGH);                 //PTA9 产生高电平   

      time_delay_ms(1000);  
    }
}
void FTM1_IRQHandler()
{
    u8 s = FTM1_STATUS;             //读取捕捉和比较状态  All CHnF bits can be checked using only one read of STATUS.
    u8 CHn;
    FTM1_STATUS = 0x00;             //清中断标志位

    CHn = 0;
    if( s & (1 << CHn) )
    {
        FTM_IRQ_DIS(FTM1, CHn);     //禁止输入捕捉中断
        /*     用户任务       */
        LED_turn(LED0);                    
        /*********************/
        //不建议在这里开启输入捕捉中断,而是在main函数里根据需要来开启
        //通道 CH0、CH1、Ch2、Ch3 有滤波器
        FTM_IRQ_EN(FTM1, CHn); //开启输入捕捉中断
        //delayms(10);        //因为输入的信号跳变过程不稳定,容易触发多次输入捕捉,所以添加延时
        //但考虑到中断不应该过长延时,所以开输入捕捉中断就放在main函数里,根据需要来开启
    }

    /* 这里添加 n=1 的模版,根据模版来添加 */
    CHn = 1;
    if( s & (1 << CHn) )
    {
        FTM_CnSC_REG(FTM1_BASE_PTR, CHn) &= ~FTM_CnSC_CHIE_MASK; //禁止输入捕捉中断
        /*     用户任务       */


        /*********************/
        //不建议在这里开启输入捕捉中断
        //FTM_CnSC_REG(FTM1_BASE_PTR,n) |= FTM_CnSC_CHIE_MASK;  //开启输入捕捉中断
    }

}


回复

使用道具 举报

发表于 2014-6-6 11:49:54 | 显示全部楼层
代码自行分析吧,必须学会自己分析代码的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-6 13:57:28 | 显示全部楼层
山外メ雲ジ 发表于 2014-6-6 11:49
代码自行分析吧,必须学会自己分析代码的。

我是按着你们的三天入门教程来写的   然后底层BUG已经修改了    我在视频上看到你们输入捕捉都得行   然后我又用了你们视频上的代码     但是我跟你们视频上用的是同一个程序(我把你们的程序抄过来的,因为直接在网上下你们提供的程序编译不出错但就是下不进程序,我自己的工程能下进去我是抄到自己以前的工程上面的)却进不到捕捉中断        
回复 支持 反对

使用道具 举报

发表于 2014-6-6 14:04:04 | 显示全部楼层
还不够 发表于 2014-6-6 13:57
我是按着你们的三天入门教程来写的   然后底层BUG已经修改了    我在视频上看到你们输入捕捉都得行   然后 ...

我们最新版本,是分FX和DN,需要选择正确的型号才可以下载成功的哦。

【山外K60 KL26】jlink 下载失败的最详细解决办法 - 智能车资料区 - 山外-vcan123论坛 http://www.vcan123.com/forum.php ... p;tid=84&ctid=1

参考里面第11条
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-6 19:02:00 | 显示全部楼层
山外メ雲ジ 发表于 2014-6-6 14:04
我们最新版本,是分FX和DN,需要选择正确的型号才可以下载成功的哦。

【山外K60 KL26】jlink 下载失败 ...

山外哥     我发现了个问题    输入捕捉智能用FTM_CH7也就是PTD7端口,为何我用PTD6就不得行了两个端口复用功能是一样的   但是用PTD7的时候就进入到捕捉中断的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-6 19:03:09 | 显示全部楼层
山外メ雲ジ 发表于 2014-6-6 14:04
我们最新版本,是分FX和DN,需要选择正确的型号才可以下载成功的哦。

【山外K60 KL26】jlink 下载失败 ...

山外哥,你的   输入捕捉例程就是用的PTD7端口
回复 支持 反对

使用道具 举报

发表于 2014-6-6 19:56:48 | 显示全部楼层
还不够 发表于 2014-6-6 19:02
山外哥     我发现了个问题    输入捕捉智能用FTM_CH7也就是PTD7端口,为何我用PTD6就不得行了两个端口复用 ...

复用功能,不是随意的,而是根据芯片手册说明来定的。
FTM_CH7 是 PTD7,那不可能也是 PTD6。
你有没有根据我的可选范围进行选择?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-6 21:02:03 | 显示全部楼层
山外メ雲ジ 发表于 2014-6-6 19:56
复用功能,不是随意的,而是根据芯片手册说明来定的。
FTM_CH7 是 PTD7,那不可能也是 PTD6。
你有没有 ...

这个我知道我也学习过   复用功能我也查过手册都没得问题
#define FTM0_CH6    PTD6        //PTD6、PTA1            PTA1不要用(与Jtag冲突)
#define FTM0_CH7    PTD7        //PTD7、PTA2



case CH6:
            if(FTM0_CH6 == PTD6)
            {
                port_init(FTM0_CH6, ALT4);
            }
            else if(FTM0_CH6 == PTA1)
            {
                port_init(FTM0_CH6, ALT3);
            }
            else
            {
                ASSERT(0);                      //设置管脚有误?
            }
            break;

        case CH7:
            if(FTM0_CH7 == PTD7)
            {
                port_init(FTM0_CH7, ALT4);
            }
            else if(FTM0_CH7 == PTA2)
            {
                port_init(FTM0_CH7, ALT3);
            }
            else
            {
                ASSERT(0);                      //设置管脚有误?
            }
            break;
        default:
            return;
        }
        break;
回复 支持 反对

使用道具 举报

发表于 2014-6-6 21:09:22 | 显示全部楼层
还不够 发表于 2014-6-6 21:02
这个我知道我也学习过   复用功能我也查过手册都没得问题
#define FTM0_CH6    PTD6        //PTD6、PTA ...

你用的是 FTM0_CH6 吗?那应该没错的啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-6 21:12:02 | 显示全部楼层
山外メ雲ジ 发表于 2014-6-6 21:09
你用的是 FTM0_CH6 吗?那应该没错的啊

对  我用这个端口不行用FTM0_CH7就行
回复 支持 反对

使用道具 举报

发表于 2014-6-6 21:21:03 | 显示全部楼层
还不够 发表于 2014-6-6 21:12
对  我用这个端口不行用FTM0_CH7就行

先测测PTD6 的 gpio功能正不正常
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-7 14:41:38 | 显示全部楼层
山外メ雲ジ 发表于 2014-6-6 21:21
先测测PTD6 的 gpio功能正不正常

普通IO功能没得问题啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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