guxingganyue 发表于 2012-8-9 14:51:39

发现一个很奇怪的问题:IAR 430中的delay函数会死机·······

本帖最后由 guxingganyue 于 2012-8-9 14:54 编辑

前几天用IAR 430 5.20版写149的程序,硬件仿真和实际运行发现delay函数出现了死循环。
delay函数如下:

#define CPU_F ((double)7372800)//在这里修改你的晶振大小,单位:Hz
/****************************************************************
                            延时函数
功能:产生软延时
芯片:MSP430F149
目标板:MSP430F1xx最小系统板
编译环境:IAR FOR 430 5.20
时间:2011-08-14
测试说明:本延时函数在ms级延时很准确,us级表现得也不错,2011-08-16
****************************************************************/

#define delay_nus(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_nms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))

我单步运行,用汇编语言查看,发现程序一直在两句话之间跳转运行,出不来了。
但这个延时函数是我去年写了,用了好长时间都没问题,这次怎么会死呢????
我有时也发现不是每次这个delay函数都会死,只是一会死一会不死

真是想不通这是怎么回事,,请大家帮忙。。先O(∩_∩)O谢谢了

guxingganyue 发表于 2012-8-9 18:29:19



难道大家没发现这个现象吗

guxingganyue 发表于 2012-8-9 18:37:47


问题已解决,请看:

http://www.amobbs.com/forum.php?mod=viewthread&tid=756021&highlight=iar%2Bdelay

millwood0 发表于 2012-8-9 18:46:26

IAR 430中的delay函数会死机

the right title for your posts should be:

poorly written函数会死机
页: [1]
查看完整版本: 发现一个很奇怪的问题:IAR 430中的delay函数会死机·······