打印

tlc549 问题..

[复制链接]
1994|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
为什么 我在仿真上运行 这个程序的时候,在没改变 输入电压的时候 会读出两个值呢..例如 我把输入电压 调到3.5v的时候,他读的就是 3490和4894..帮忙找找是哪出的错啊..
这个是 那块程序..
#include "tlc549.h"
#include "delay.h"
unsigned char TLC549_GetValue()
{
  
  unsigned char i,temp;
  TLC549_CS=1;
  TLC549_SCLK=0;

  TLC549_CS=0;
  TLC549_SDO=1;
  for(i=0;i<8;i++)
  {
   if(TLC549_SDO) temp=temp|(0x80>>i);
   TLC549_SCLK=1;
   TLC549_SCLK=0;
  }
  TLC549_CS=1;
    delay(20);
  return temp;
}
unsigned int TLC549_GhangValue()
{
  unsigned char value;
  unsigned int a;
  value=TLC549_GetValue();
  a=195*value;
  return a;
}

相关帖子

沙发
zhaoyu2005| | 2010-9-16 09:39 | 只看该作者
时序错了,另外就是第一次的的数值要丢弃

使用特权

评论回复
板凳
zhaoyu2005| | 2010-9-16 09:40 | 只看该作者
仔细看下时序图,你的时钟不对,对比下,数一下,多对几次就明白了

使用特权

评论回复
地板
zhoukok| | 2010-9-16 09:42 | 只看该作者
一般来说第一次转换的值是不准确的,最好是丢弃

使用特权

评论回复
5
爱学小生|  楼主 | 2010-9-16 12:38 | 只看该作者
额..能不能 具体给指示一下...时序不对?但 第一次读回来的数值时对的啊..他就是 总是对一回  错一回的....

使用特权

评论回复
6
爱学小生|  楼主 | 2010-9-16 12:41 | 只看该作者
第一次的 转换值丢弃....那我每次 读取的时候 都读取两次就行了吧..
unsigned int TLC549_GhangValue()
{
  unsigned char value;
  unsigned int a;
  value=TLC549_GetValue();
  value=TLC549_GetValue();

  a=195*value;
  return a;
}

使用特权

评论回复
7
爱学小生|  楼主 | 2010-9-16 12:45 | 只看该作者
我仔细 看了会 ,没发现时序有啥问题啊..还请各位说的在详细一点..还有就是 他传完A7到A0后,哪个A7是什么啊... 先谢各位了..

使用特权

评论回复
8
zhaoyu2005| | 2010-9-16 16:09 | 只看该作者
按照你的说的3490/195约为18(0x12),4894/195约为25(0x19),差在低半字节的高位,一般不会是误差引起的,所以才考虑是时序引起的,看下高电平时间、低电平时间,采样间隔等
A7就是最高位,和第一位一样,按照你的说的3490/195约为18(0x12),4894/195约为25(0x19)

使用特权

评论回复
9
爱学小生|  楼主 | 2010-9-20 13:49 | 只看该作者
O ..我在看看了..谢了..

使用特权

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

本版积分规则

32

主题

138

帖子

2

粉丝