智能车制作

标题: 在函数当中定义一个变量,单步时显示not allocated,求解 [打印本页]

作者: KiraVerSace    时间: 2011-3-17 12:55
标题: 在函数当中定义一个变量,单步时显示not allocated,求解
如题,unsigned int SPI_Read_Reg_mma7455(unsigned int uiReg){
  unsigned int uiTemp=1;
  MMA_CS=0;   //CS=0

  uiTemp=SPI0DRL;
  while (!SPI0SR_SPTEF);            //判断发送寄存器是空的
  SPI0DRL= ((uiReg &0x3F)<<1);      //向寄存器地址写 读的命令
  while(!SPI0SR_SPIF);              //写完读取从机的寄存器的指令之后 等待从机反馈数据
  uiTemp=SPI0DRL;                   //读取MMA7455反馈的数据

  SPI0DRL=0xff;                     //主机产生8个时钟信号,MMA7455返回 数据
  while(!SPI0SR_SPIF);
  uiTemp=SPI0DRL;
  MMA_CS=1;    //CS=1

  return (uiTemp);  
}


就是这段函数中的 uiTemp,希望高手 可以帮帮我

作者: boxsoldier    时间: 2011-4-27 21:52
声明为static 静态变量试试
作者: hailiang6666    时间: 2011-7-8 09:33
volatlie
作者: hailiang6666    时间: 2011-7-8 09:35
volatile
作者: thnh169    时间: 2011-7-8 14:52
这个是由于编译器在编译时候优化掉了。。。
uiTemp=SPI0DRL;
程序中只有这个语句,后续程序没有任何的写入,所以编译器自动优化掉了。。。
在申请变量时候,这样写volatile unsigned int uiTemp=1;这样就不会优化掉了




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2