2717|0

300

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

【TI首届低功耗设计大赛】07611128 温度传感器tmp123数据转换问题 [复制链接]

https://bbs.eeworld.com.cn/thread-447702-1-2.html
这个是我以前发的帖子,现在新开一个。这次的主题是关于温度传感器TMP123的。

目前遇到了这样一个困惑。在读取时序的过程中,可以很正常的读取。他的时序图如下:

一共是读取13位数据。根据datasheet来看,他的低位BIT2为1,BIT1,BIT0为高阻态,那我应该怎么样去计算?需要把这个读出来的13位向左移三位么?
在资料里面提供的数据来看,他最高应该有16位的,到底该怎么算,并且,上图BIT2=1,下图中BIT2=0,到底是那个……

我试验了一下,当我把这个数据向左移3位的时候,经过换算,大约是240度左右(肯定是错的)。当我直接用13位数据去转换,感觉是正确的,符合室温,拿到手里面温度也是变化的,放到电脑出风口,温度也是ok的。这是串口发送的一组数据:27.1250
27.0625
27.0625
27.0625
27.0625
27.1250
27.4375
27.6250
27.8125
28.0000
28.1250
28.3125
28.5000
28.6875
28.8125
29.0000
29.0625
29.3125
29.5000
29.6875
29.8125
30.0000
30.1250
30.3125
30.4375
30.6250
30.7500
30.8125
我只是短暂的手动(调试界面)让他发送了一下数据。可以看到,他在不断地升温中,到最后升温到38度左右,
因此感觉不需要移位就是正确的,现在问题来了,他的后三位是干嘛的??求指教。
程序如下:
#define TMP123_CS_1 (P1OUT |= BIT4)
#define TMP123_CS_0 (P1OUT &=~BIT4)
#define TMP123_CLK_1 (P1OUT |= BIT5)
#define TMP123_CLK_0 (P1OUT &=~BIT5)
#define TMP123_data  P1IN&BIT3
void Delayus()
{ unsigned char i;
  for (i=0;i<100;i++)
        _NOP(); _NOP();
}
void TMP_Init()
{
   P1DIR&=~BIT3;
   P1DIR=BIT4+BIT5;              //P5.2、4、5、6=in,P5.0、1、3、7=out
   PM5CTL0 &= ~LOCKLPM5;
}
//温度读取
unsigned int ReadOp(void)
{
  unsigned int dat=0;
  unsigned int TEMPTMP=0;
  char num=13;
  TMP123_CS_1;
  TMP123_CLK_1;
  Delayus();
  TMP123_CS_0;  
  Delayus();
  
  while(num)
  {
      TMP123_CLK_0;
      dat=dat<<1;
      Delayus();
      TEMPTMP=TMP123_data;
      Delayus();
      dat|=TEMPTMP;
      TMP123_CLK_1;
      Delayus();
      num--;
  }
  TMP123_CS_1;
// dat=dat<<3;
  return dat;
}

Ps:他的温度转换每0.5s转换一次,楼主的串口发送太快,在调试的时候还以为,他为什么就不工作了!!好吧,当做笑话来看好了,使用的时候注意下了
 
点赞 关注
个人签名世间万物皆系于一键之上~

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表