打印

ADS7846采样温度的问题

[复制链接]
1933|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我从网上下了个ADS7846程序,采集XY坐标OK了。
我改了一下,采集温度,值跳变的很厉害。
程序如下:
uint AD_TEMP(void)
{ uint Temperature;
    delay(10000); //中断后延时以消除抖动,使得采样数据更准确
    start(); //启动SPI
    while(BUSY); //如果BUSY信号不好使可以删除不用
    delay(2);
    WriteCharTo7843(0x80); //送控制字 10010000 即用差分方式读温度 详细请见有关资料
    while(BUSY); //如果BUSY信号不好使可以删除不用
    delay(2);
    DCLK=1; _nop_();_nop_();_nop_();_nop_();
    DCLK=0; _nop_();_nop_();_nop_();_nop_();
    Temperature=ReadFromCharFrom7843();  //读X轴坐标
CS=1;
return(Temperature);
}
谁写过这样的程序,请指教,谢谢!

相关帖子

沙发
chen3bing|  楼主 | 2011-9-10 07:25 | 只看该作者
高手支招啊!

使用特权

评论回复
板凳
chen3bing|  楼主 | 2011-9-10 08:47 | 只看该作者
采样设成12位OK,设成8位就不对了。

使用特权

评论回复
地板
chen3bing|  楼主 | 2011-9-10 09:21 | 只看该作者
8位也好了,显示的问题。
还有,谁能告知温度计算公式?
我用单端模式采到一个比较稳定的数值,不知道如何转换。

使用特权

评论回复
5
chen3bing|  楼主 | 2011-9-10 11:04 | 只看该作者
下面是温度采样的说明书。

1.jpg (261.52 KB )

1.jpg

2.jpg (247.31 KB )

2.jpg

使用特权

评论回复
6
邪恶猛男| | 2011-9-10 11:09 | 只看该作者
MARK

使用特权

评论回复
7
chen3bing|  楼主 | 2011-9-10 11:10 | 只看该作者
大家看我理解的对不对。
第一种模式的意思是,先在室温25度时采样,得到一个采样值,并把它存储起来。需要采样环境温度时,得到的采样值和储存值比较,每差1则代表0.3度。比如储存值为500,采样值为499,则环境温度为24.7度。

使用特权

评论回复
8
chen3bing|  楼主 | 2011-9-10 13:38 | 只看该作者
怎么没人理呢?大侠帮帮忙吗?

使用特权

评论回复
9
chen3bing|  楼主 | 2011-9-10 13:54 | 只看该作者
现在用第二种模式读取温度,全部为0.

使用特权

评论回复
10
chen3bing|  楼主 | 2011-9-10 14:51 | 只看该作者
读取电池,Z1Z2全部为0.

使用特权

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

本版积分规则

439

主题

2539

帖子

2

粉丝