程序问题求教!

rockybest   2009-4-22 17:17 楼主
430f2272的程序,不加中断程序运行正常。加一段中断程序后,程序执行很慢,就在下面的初始化程序里出不来了,像是进入了低功耗模式
WDTCTL = WDTPW + WDTHOLD; //stop watchdog timer
{
volatile int i;
for (i=1;i<0xFFFF;i++){} //delay loop to ensure porper startup
}
真是奇怪,难道加了中断,就自动进入低功耗模式了?我的中断程序里加了
LPM4_EXIT;
这句是退出低功耗的啊,主程序里也没有进入低功耗模式的语句,真是奇怪。搞死了要,那位大侠指教一二啊。

回复评论 (11)

急啊,自顶一下
点赞  2009-4-22 17:21
只要把中断程序注释掉就好了。真是奇怪啊。
点赞  2009-4-22 17:23
另外,我用的是DCO,没有接外部晶振
点赞  2009-4-22 17:26
请问你加的是什么中断啊?
点赞  2009-4-22 18:49
P1口的中断啊。
点赞  2009-4-22 19:50
P1口的中断需要软件手动复位
点赞  2009-4-22 22:51
能看一下你的中断程序怎么写的吗?
点赞  2009-4-22 22:51
volatile int i;
for (i=1;i<0xFFFF;i++)

i是有符号的 你怎么还用0xFFFF?

另外窝换衣你程序是不是跑飞复位了
点赞  2009-4-23 09:04
引用:

volatile int i;
for (i=1;i<0xFFFF;i++)

i是有符号的 你怎么还用0xFFFF?

另外窝换衣你程序是不是跑飞复位了
我也是这么认为的。
点赞  2009-4-23 09:26
引用:

volatile int i;
for (i=1;i<0xFFFF;i++)

i是有符号的 你怎么还用0xFFFF?

另外窝换衣你程序是不是跑飞复位了
还有0xFFFF十六进制数最高位是字母的话应该要加0才对
点赞  2009-4-24 18:05
呵呵,现在问题是解决了,但是不知道原因。
1、在main程序里设置断点,让后连续运行,就进入了低功耗模式。
2、中断程序中没有推出低功耗模式的语句,退出中断就进入了低功耗模式。
3、开启了相应的中断,但没有相应的终端服务程序,也会进入地功耗模式。
难道430就是这么设置的?很奇怪。不知道为什么main程序里不能设置断点,程序调试起来很不方便。
不过程序连续运行之后在设置断点貌似又可以的。
奇怪啊。
点赞  2009-4-24 21:56
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复