注册 登录
查看: 383|回复: 4

求助开启CH1以及以后通道的中断

[复制链接]
发表于 2014-9-28 23:15:20 | 显示全部楼层 |阅读模式
  1. /*************************************************************************
  2. *                             野火嵌入式开发工作室
  3. *                             FTM 输入捕捉中断测试
  4. *
  5. *  实验说明:野火 FTM 输入捕捉中断实验,用LED显示是否进入了中断。
  6. *
  7. *  实验操作:这里用 FTM1_CH0 输入捕捉 ,即 PTA8 管脚。
  8. *            PTA9 产生方波 ,把 PTA9 和 PTA8 短接 ,
  9. *            即PTA9产生的上升沿来触发 FTM1_CH0 中断
  10. *
  11. *  实验效果:LED0闪烁
  12. *
  13. *  实验目的:测试  FTM1_CH0 输入捕捉功能
  14. *
  15. *  修改时间:2012-2-29     已测试
  16. *
  17. *  备    注:FTM.h 里有各个FTM通道所对应管脚的表格,方便查看
  18. *
  19. *************************************************************************/
  20. void main()
  21. {
  22.     DisableInterrupts;            //禁止总中断

  23.     gpio_init(PORTD, 7, GPO, HIGH);               //初始化PTA9,输出高电平
  24.     LED_INIT();                                  //初始化LED, FTM1_IRQHandler 中断函数里闪烁LED0
  25.     FTM_Input_init(FTM0, CH1, Rising);           //初始化FTM输入捕捉模式,上升沿触发

  26.     EnableInterrupts;                           //开总中断

  27.     while(1)
  28.     {
  29.         gpio_set(PORTD, 7, LOW);                //PTA9产生低电平

  30.         time_delay_ms(250);                     //延时一下

  31.         gpio_set(PORTD, 7, HIGH);               //PTA9产生高电平

  32.         time_delay_ms(250);                     //延时一下
  33.     }
  34. }

  1. /*************************************************************************
  2. *                             野火嵌入式开发工作室
  3. *
  4. *  函数名称:FTM1_IRQHandler
  5. *  功能说明:FTM1输入捕捉中断服务函数
  6. *  参数说明:无
  7. *  函数返回:无
  8. *  修改时间:2012-2-25
  9. *  备    注:引脚号需要根据自己初始化来修改,参考现有的代码添加自己的功能
  10. *************************************************************************/
  11. void FTM0_IRQHandler()
  12. {
  13.     u8 s = FTM0_STATUS;             //读取捕捉和比较状态  All CHnF bits can be checked using only one read of STATUS.
  14.     u8 CHn;
  15.     FTM0_STATUS = 0x00;             //清中断标志位

  16.     CHn = 0;
  17.     if( s & (1 << CHn) )
  18.     {
  19.         FTM_IRQ_DIS(FTM0, CHn);     //禁止输入捕捉中断
  20.         /*     用户任务      
  21.         LED_turn(LED0);   
  22.         time_delay_ms(50);
  23.         LED_turn(LED1);
  24.         time_delay_ms(50);
  25.         LED_turn(LED2);
  26.         time_delay_ms(50);
  27.         LED_turn(LED3);
  28.         time_delay_ms(50);*/

  29.         /*********************/
  30.         //不建议在这里开启输入捕捉中断,而是在main函数里根据需要来开启
  31.         //通道 CH0、CH1、Ch2、Ch3 有滤波器
  32.         FTM_IRQ_EN(FTM0, CHn); //开启输入捕捉中断
  33.         //delayms(10);        //因为输入的信号跳变过程不稳定,容易触发多次输入捕捉,所以添加延时
  34.         //但考虑到中断不应该过长延时,所以开输入捕捉中断就放在main函数里,根据需要来开启
  35.     }

  36.     /* 这里添加 n=1 的模版,根据模版来添加 */
  37.     CHn = 1;
  38.     if( s & (1 << CHn) )
  39.     {
  40.         FTM_CnSC_REG(FTM0_BASE_PTR, CHn) &= ~FTM_CnSC_CHIE_MASK; //禁止输入捕捉中断
  41.         /*     用户任务       */
  42.         LED_turn(LED0);   
  43.         time_delay_ms(50);
  44.         LED_turn(LED1);
  45.         time_delay_ms(50);
  46.         LED_turn(LED2);
  47.         time_delay_ms(50);
  48.         LED_turn(LED3);
  49.         time_delay_ms(50);

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

  54. }
理论上FTM的每个模块都可以单独触发相应通道引脚相关的中断的吧,可是 我的终端服务程序如果用在CHn = 0时可以触发中断,若再CHn=1 或者其他值都触发不了,求各位大神帮助,不知道是不是配置问题,找了两天原因都没找到,     求帮助呀,不甚感激
回复

使用道具 举报

发表于 2014-9-29 08:55:34 | 显示全部楼层
应该是旧版本的bug,用新版本吧。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-29 10:49:15 | 显示全部楼层
微粒子 发表于 2014-9-29 08:55
应该是旧版本的bug,用新版本吧。

啊,这样啊,大神一般用的哪个版本?可以分享一下么,谢谢
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2014-9-29 10:53:00 | 显示全部楼层
sunshinezl 发表于 2014-9-29 10:49
啊,这样啊,大神一般用的哪个版本?可以分享一下么,谢谢

论坛,导航栏里有山外资料下载,里面就有代码下载。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2014-9-29 10:54:11 | 显示全部楼层
sunshinezl 发表于 2014-9-29 10:49
啊,这样啊,大神一般用的哪个版本?可以分享一下么,谢谢

【山外K60】一天攻破K60 代码 V5.1 - 一天攻破K60 - 山外-vcan123论坛 http://vcan123.com/forum.php?mod=viewthread&tid=6193&ctid=26
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

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

本版积分规则

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