打印

请问个变量定义问题

[复制链接]
1428|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liuyu305|  楼主 | 2008-3-20 15:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
pi, ui, spi, IO, pd
/**********************************
**
** 函数名称:  mspi_getdata()
** 函数功能:  spi数据接受
** 入口参数:  pin_cs 
** 出口参数:  MAX6677的data数据
**
***********************************/

uint16 mspi_getdata ( uint32 pin_cs )
{  
   
   uint16 T1;
   uint16 TT;
   S0SPDR = 0x0000;
   IO0CLR = pin_cs ;
   while(0 == (S0SPSR & 0x80));
   IO0SET = pin_cs ;
   T1= S0SPDR; 
   if(0 == (T1&0x0004))
     {
      TT = ((T1<<1)>>4);
      return ( TT ); //这里有问题,只有强制转换成字符型程序才能运行
     }
   else
    {
      return (0x0000);
    }
}


只有进行强制转换,程序才能运行,不过不强制转换,程序是可以编译通过,但是不能运行

请问我哪里错了?一天了,还没解决掉。。

相关帖子

沙发
dld2| | 2008-3-20 16:09 | 只看该作者

不能运行是啥意思?停在while上了?

使用特权

评论回复
板凳
liuyu305|  楼主 | 2008-3-20 16:44 | 只看该作者

是连main的初始化都不能进行

使用特权

评论回复
地板
dld2| | 2008-3-20 16:56 | 只看该作者

不知道哦

使用特权

评论回复
5
liuyu305|  楼主 | 2008-3-20 17:39 | 只看该作者

找到原因

/*********************************************************************************************************
**
** 函数名称: AD_INT()
** 函数功能: AD初始化
** 入口参数: 无
** 出口参数: 无
**
********************************************************************************************************/
void AD_INT( void )
{
 uint32 H;
 AD0CR = (1 << 3 )                    |   //SEL = 8 ,选择通道3
         ((Fpclk / 1000000 - 1) << 8) |   //转换时钟
         (0 << 16 )                   |   //软件控制转化操作
         (0 << 17 )                   |   //使用11clock操作
         (1 << 21 )                   |   //正常工作模式
         (0 << 22 )                   |   //正常工作模式
         (1 << 24 )                   |   //直接启动ADC
         (0 << 27 ) ; //
 while (( AD0DR3 & 0x80000000) == 0 );   //这个是罪魁祸首。
 H = AD0DR3 ;        
}


这个原因真的是很怪异,竟然是我ADC初始化的一个while句子的问题 

使用特权

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

本版积分规则

108

主题

1889

帖子

6

粉丝