智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1366|回复: 2
打印 上一主题 下一主题

关于中断的求助

[复制链接]

34

主题

820

帖子

0

精华

跨届大侠

酷比的日子又要来了‘

Rank: 10Rank: 10Rank: 10

积分
8546

论坛元老奖章活跃会员奖章优秀会员奖章在线王奖章资源大师奖章

QQ
威望
4018
贡献
3210
兑换币
2965
注册时间
2014-5-21
在线时间
659 小时
跳转到指定楼层
1#
发表于 2014-9-28 23:16:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
理论上FTM的每个模块都可以单独触发相应通道引脚相关的中断的吧,可是 我的终端服务程序如果用在CHn = 0时可以触发中断,若再CHn=1 或者其他值都触发不了,求各位大神帮助,不知道是不是配置问题,找了两天原因都没找到,     求帮助呀,不甚感激


  1. void main()
  2. {
  3.     DisableInterrupts;            //禁止总中断

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

  7.     EnableInterrupts;                                 //开总中断

  8.     while(1)
  9.     {
  10.         gpio_set(PORTD, 7, LOW);                //PTA9产生低电平

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

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

  13.         time_delay_ms(250);                     //延时一下
  14.     }
  15. }
复制代码

  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. }
复制代码


回复

使用道具 举报

32

主题

3009

帖子

0

精华

杰出人士

学期班的来卖萌?

Rank: 12Rank: 12Rank: 12

积分
14832

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章资源大师奖章

威望
5952
贡献
3172
兑换币
4257
注册时间
2013-11-26
在线时间
2854 小时
2#
发表于 2014-9-29 13:41:18 | 只看该作者
看你的宏定义引脚复用
回复 支持 反对

使用道具 举报

34

主题

820

帖子

0

精华

跨届大侠

酷比的日子又要来了‘

Rank: 10Rank: 10Rank: 10

积分
8546

论坛元老奖章活跃会员奖章优秀会员奖章在线王奖章资源大师奖章

QQ
威望
4018
贡献
3210
兑换币
2965
注册时间
2014-5-21
在线时间
659 小时
3#
 楼主| 发表于 2014-9-29 13:45:33 | 只看该作者
zhou1994 发表于 2014-9-29 13:41
看你的宏定义引脚复用

复用更改了
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 15:54 , Processed in 0.090666 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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