三星 IAR C语言 的奇怪现象 (等待高手解决)
我把程序简化到最短了....
程序一:
#include <ios3c9454.h>
#include <intrinsics.h>
#define stop 0
#define run 1
unsigned char alarm_flag; //是否报警的标志。
void main()
{
alarm_flag =run;
ei;
alarm_flag=stop; // 注意这块
while(1)
{
p1=0;
}
}
在软件仿真时,程序 alarm_flag=stop; 这句话执行完后,alarm_flag中的值变成了unavailable
程序2:
程序一:
#include <ios3c9454.h>
#include <intrinsics.h>
#define stop 0
#define run 1
unsigned char alarm_flag; //是否报警的标志。
void main()
{
alarm_flag =run;
ei;
alarm_flag=stop; // 注意这块
while(1)
{
nop();
p1=0;
}
}
多加一句 nop();则执行 alarm_flag=stop; 这句话后alarm_flag=0,
为什么呀???,如果知道的话可以发答案到我油箱shuifengdaoshang@hotmail.com
发表时间:2008年7月2日14:38:42