打印

430G2553怎么进不了中断?

[复制链接]
1254|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pywmiss|  楼主 | 2015-8-6 15:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
熟悉又陌生的MSP430,。。。这次有个项目要做。。用电池供电的,也是美国客户的。。所以想换个TI的单片机试试。。。。这个Launchpad学习板在我手上已经两年了。。。一直没用上。
这次我想直接用DCO内部16M。(电路上有3.3V稳压供电)
时间中断正常,可以进入,也调试OK。
但是在按键调试时却也进不了端口中断(有时可以,有时不行)。。。
void sys_init(void)
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;

  BCSCTL1=CALBC1_16MHZ;
  DCOCTL=CALDCO_16MHZ;    //设置主时钟为16MHZ

     //---io设置(总的设置,包括按键)
  P1DIR |= 0x04;        //设置P1.2为输出端口(其他为输入) ==按键
  P1OUT |= 0x30;           //  启用1.4,1.5脚上拉
  P1REN |= 0x30;            //启用1.4,1.5脚上、下拉功能  

  P2DIR |= 0xBE;        //设置P2.6,2.0为输入端口(其他为输出)
  P2OUT |= 0x41;           //  启用P2.6,2.0脚上拉  
  P2REN |= 0x41;            //启用P2.6,2.0脚上、下拉功能  

  P1IE  |=0x30;   //P1.4~P1.5允许中断   
  P1IES |=0x30;    //P1.4~P1.5下降沿触发中断

  P2IE  |=0x41;   //P2.0允许中断   
  P2IES |=0x41;    //P2.0下降沿触发中断

   P1IFG =0x00;      //P1中断标志清0
   P2IFG =0x00;      //p2中断标志清0
}

#pragma vector=PORT1_VECTOR
__interrupt void Port(void)
{

    P1IFG=0;   //清中断标志
}
我在中断里加了一个停止点,有时候可以进入,有时却不行。。。IO口的电平变化是正常的。。
这是一个矩阵键盘,P1.4,1.5  P2.0为输入脚,配置了上拉; P2.1  P2.2为公共脚输出低电平。。。现在有试过好几次P1口中断能进入停止,P2不行。。。P2能中断一次。。P1又不行。。。好奇怪。。都没有一次两个口中断都正常的。..不明白是什么问题。。。烦啊!!感觉很不可靠啊。。是仿真板问题吗?还是软件问题?
使用的软件是 IAR C/C++ Compiler for MSP430   6.10.2 (6.10.2.50871)


另外,我之前一直用汇编编程的,这次转用C,中断程序是直接放在main.c程序里还是另外做一个中断的程序IRQ.c



相关帖子

沙发
JY-DX-JY| | 2015-8-6 17:28 | 只看该作者
有过这个体验。不止MSP430。M0,M3都这样。引脚中断跟手写的按键程序就是不一样。

使用特权

评论回复
板凳
pywmiss|  楼主 | 2015-8-6 17:45 | 只看该作者
JY-DX-JY 发表于 2015-8-6 17:28
有过这个体验。不止MSP430。M0,M3都这样。引脚中断跟手写的按键程序就是不一样。 ...

怎么会进不了中断。。我另外一个中断是要进入计数的。。。进不了就做不了事了啊。。。

使用特权

评论回复
地板
JY-DX-JY| | 2015-8-6 18:03 | 只看该作者
我也不知道,应该可以进中断,不稳定。可能是因为按键抖动。

使用特权

评论回复
5
dirtwillfly| | 2015-8-6 21:04 | 只看该作者
在中断里点个led灯看看

使用特权

评论回复
6
pywmiss|  楼主 | 2015-8-7 09:07 | 只看该作者
dirtwillfly 发表于 2015-8-6 21:04
在中断里点个led灯看看

谢谢回复
我把其他的时间中断去掉,然后用点灯的方式。。灯可以亮(中断里的停止点无效,不会停止)。。
看来是和时间的中断冲突了,要查查看怎么处理
另外,TI这种仿真是没办法在中断里停止的。

使用特权

评论回复
7
pywmiss|  楼主 | 2015-8-7 11:30 | 只看该作者
本帖最后由 pywmiss 于 2015-8-7 12:01 编辑
dirtwillfly 发表于 2015-8-6 21:04
在中断里点个led灯看看
现在仿真板试。。。可以了。再返回目标板试试看

使用特权

评论回复
8
bargage| | 2015-8-7 12:41 | 只看该作者
我看不太明白

使用特权

评论回复
9
lefeng| | 2015-8-8 21:42 | 只看该作者
建议按键做消抖处理

使用特权

评论回复
10
冰河w| | 2015-8-9 10:42 | 只看该作者
中断响应完是不是就自己关了,需要再次打开

使用特权

评论回复
11
尤彼卡| | 2015-8-9 11:39 | 只看该作者
楼主现在是什么问题,强烈建议做消抖

使用特权

评论回复
12
pywmiss|  楼主 | 2015-8-10 17:30 | 只看该作者
尤彼卡 发表于 2015-8-9 11:39
楼主现在是什么问题,强烈建议做消抖

我想能够在中断里做停止点....因为我以前用松翰单片机..可以在仿真的时候中断里停止..
现在用这个根本停不了...但是中断是有效的..

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

793

帖子

6

粉丝