社区导航

 

搜索
查看: 1768|回复: 18

[讨论] msp430上升沿中断,陷入死循环

[复制链接]

27

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-8-9 10:37 | 显示全部楼层 |阅读模式
以下是我的代码,设置P2.0端口为上升沿中断,但是一直陷入死循环,求指教

  1. #include <msp430.h>
  2. #include<xianshi.h>
  3. #include<GPIO_init.h>
  4. #include<dushuju.h>

  5. ////上位机

  6. /*
  7. * main.c
  8. */
  9. unsigned char shidu,wendu,shiduh,shidul,wenduh,wendul,i;

  10. void main(void) {
  11.     WDTCTL = WDTPW | WDTHOLD;        // Stop watchdog timer
  12.     GPIO_init();
  13.     Init5110();

  14.         P2DIR&=~BIT0;
  15.         P2REN|=BIT0;
  16.         P2OUT&=~BIT0;    //设置为下拉电阻
  17.         P2IES&=~BIT0;   //上升沿中断
  18.         P2IFG&=~BIT0;
  19.         P2IE|=BIT0;
  20.         _enable_interrupts();
  21. #pragma vector=PORT2_VECTOR
  22. __interrupt void PORT_2(void)
  23. {
  24.         P4DIR|=BIT7;
  25.         P4OUT|=BIT7;


  26.         P2IFG&=~BIT0;
  27. }



  28. void abort(void)
  29. {
  30.    /*-------------------------------------------------------------------*/
  31.    /* SET C$EXIT LABEL SO THE DEBUGGER KNOWS WHEN THE C++ PROGRAM HAS  */
  32.    /* COMPLETED.  THIS CAN BE REMOVED IF THE DEBUGGER IS NOT USED.      */
  33.    /*-------------------------------------------------------------------*/
  34.    __asm("        .global C$EXIT");
  35.    __asm("C$EXIT: nop");

  36.    for (;;);   /* SPINS FOREVER */
  37. }
复制代码



回复

使用道具 举报

5777

TA的帖子

209

TA的资源

版主

Rank: 6Rank: 6

发表于 2015-8-9 12:39 | 显示全部楼层
断点调试,观察P2IFG,是否有其他的中断源。

EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,上班摸鱼场,释放压力好地方!商家勿入!加群暗号:喵


回复

使用道具 举报

1366

TA的帖子

0

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2015-8-9 23:09 | 显示全部楼层
怎么感觉你的main函数怪怪的,把中断服务函数写到里面了,不应该是写到main函数外面的吗??

点评

不觉得是少了main函数尾部的花括号么? 然后,整个main函数木有主循环。。。跑完程序直接复位。。。  详情 回复 发表于 2015-8-10 01:16
对,中断函数应该是在外面的啊,他这种写法很奇怪,没有试过,不知道可行不。即使可行,我觉得也不好看。  详情 回复 发表于 2015-8-10 00:06

回复

使用道具 举报

4193

TA的帖子

9

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2015-8-10 00:06 | 显示全部楼层
强仔00001 发表于 2015-8-9 23:09
怎么感觉你的main函数怪怪的,把中断服务函数写到里面了,不应该是写到main函数外面的吗??

对,中断函数应该是在外面的啊,他这种写法很奇怪,没有试过,不知道可行不。即使可行,我觉得也不好看。

点评

读的,我没试过这样写,感觉这样有问题吧  详情 回复 发表于 2015-8-10 20:51

回复

使用道具 举报

1165

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

荣誉会员勋章

发表于 2015-8-10 01:16 | 显示全部楼层
强仔00001 发表于 2015-8-9 23:09
怎么感觉你的main函数怪怪的,把中断服务函数写到里面了,不应该是写到main函数外面的吗??

不觉得是少了main函数尾部的花括号么?
然后,整个main函数木有主循环。。。跑完程序直接复位。。。

点评

对的连个while(1)之类都没有  详情 回复 发表于 2015-8-10 20:52

回复

使用道具 举报

27

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-8-10 11:37 | 显示全部楼层
那个是我上传程序代码的时候,少了一个括号,完整的代码,在main函数和中断函数之间有括号的

回复

使用道具 举报

73

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-8-10 13:24 | 显示全部楼层
把for(;;)放在main函数里面最后一行。另外这样编程和原理图示对应的吗,原理图别是下降沿中断、、、、

点评

话说遇到这种情况怎么解决?Error connecting to the target: Unknown device  详情 回复 发表于 2015-8-10 16:31
那个for(;;),是在另一个文件中  详情 回复 发表于 2015-8-10 16:31

回复

使用道具 举报

27

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-8-10 16:31 | 显示全部楼层
xushun716 发表于 2015-8-10 13:24
把for(;;)放在main函数里面最后一行。另外这样编程和原理图示对应的吗,原理图别是下降沿中断、、、、

那个for(;;),是在另一个文件中

回复

使用道具 举报

27

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-8-10 16:31 | 显示全部楼层
xushun716 发表于 2015-8-10 13:24
把for(;;)放在main函数里面最后一行。另外这样编程和原理图示对应的吗,原理图别是下降沿中断、、、、

话说遇到这种情况怎么解决?Error connecting to the target: Unknown device

点评

换个USB口,或者重安驱动试试  详情 回复 发表于 2015-8-10 16:44

回复

使用道具 举报

73

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-8-10 16:44 | 显示全部楼层
毅栋 发表于 2015-8-10 16:31
话说遇到这种情况怎么解决?Error connecting to the target: Unknown device

换个USB口,或者重安驱动试试

点评

解决了,感谢你这么积极回应我的问题  详情 回复 发表于 2015-8-10 19:26

回复

使用道具 举报

27

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-8-10 19:26 | 显示全部楼层
xushun716 发表于 2015-8-10 16:44
换个USB口,或者重安驱动试试

解决了,感谢你这么积极回应我的问题

点评

原因查出来没有?可以在论坛分享一下。  详情 回复 发表于 2015-8-10 20:28

回复

使用道具 举报

1165

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

荣誉会员勋章

发表于 2015-8-10 20:28 | 显示全部楼层
毅栋 发表于 2015-8-10 19:26
解决了,感谢你这么积极回应我的问题

原因查出来没有?可以在论坛分享一下。

点评

是板子的问题  详情 回复 发表于 2015-8-11 16:15

回复

使用道具 举报

1366

TA的帖子

0

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2015-8-10 20:51 | 显示全部楼层
huaiqiao 发表于 2015-8-10 00:06
对,中断函数应该是在外面的啊,他这种写法很奇怪,没有试过,不知道可行不。即使可行,我觉得也不好看。

读的,我没试过这样写,感觉这样有问题吧

点评

就是滴,不管程序对不对。但是楼主那样写至少程序的可读性很差。我个人的话,不建议那样写呢。  详情 回复 发表于 2015-8-10 21:09

回复

使用道具 举报

1366

TA的帖子

0

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2015-8-10 20:52 | 显示全部楼层
qiushenghua 发表于 2015-8-10 01:16
不觉得是少了main函数尾部的花括号么?
然后,整个main函数木有主循环。。。跑完程序直接复位。。。

对的连个while(1)之类都没有

回复

使用道具 举报

4193

TA的帖子

9

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2015-8-10 21:09 | 显示全部楼层
强仔00001 发表于 2015-8-10 20:51
读的,我没试过这样写,感觉这样有问题吧

就是滴,不管程序对不对。但是楼主那样写至少程序的可读性很差。我个人的话,不建议那样写呢。

点评

赞同,要养成好的风格和习惯  详情 回复 发表于 2015-8-10 21:45

回复

使用道具 举报

1366

TA的帖子

0

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2015-8-10 21:45 | 显示全部楼层
huaiqiao 发表于 2015-8-10 21:09
就是滴,不管程序对不对。但是楼主那样写至少程序的可读性很差。我个人的话,不建议那样写呢。

赞同,要养成好的风格和习惯

点评

对对,代码是给人看的。可读性不好,的确不好啊。  详情 回复 发表于 2015-8-10 21:51

回复

使用道具 举报

4193

TA的帖子

9

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2015-8-10 21:51 | 显示全部楼层
强仔00001 发表于 2015-8-10 21:45
赞同,要养成好的风格和习惯

对对,代码是给人看的。可读性不好,的确不好啊。

点评

对的,可读性差的代码移植到其他的平台也棘手  详情 回复 发表于 2015-8-10 22:59

回复

使用道具 举报

1366

TA的帖子

0

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2015-8-10 22:59 | 显示全部楼层
huaiqiao 发表于 2015-8-10 21:51
对对,代码是给人看的。可读性不好,的确不好啊。

对的,可读性差的代码移植到其他的平台也棘手

回复

使用道具 举报

27

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-8-11 16:15 | 显示全部楼层
qiushenghua 发表于 2015-8-10 20:28
原因查出来没有?可以在论坛分享一下。

是板子的问题

回复

使用道具 举报

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

关闭

站长推荐上一条 1/7 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-5-26 15:30 , Processed in 0.528134 second(s), 39 queries , Gzip On, MemCache On.

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