MSP430F2618写TLV5638

来源:互联网 发布:鞍山市网络作家协会 编辑:程序博客网 时间:2024/06/12 00:10
/*===========================================
*******************5638使用说明***********
  5638内部含有两个通道,通道A 通道B 同时还含有内部1.024 2.048的
参考,通过选择不同的通道和不同的参考,达到输出的目的 fast mode ,slow mode, power down mode, normal mode 不考虑
电压和TLV5615一样*2的增益
  选择通道A
  write_TLV_5638(0xd001);A通道1.024基准电压 
  write_TLV_5638(0xd002);A通道2.048基准电压 
  write_TLV_5638(0xcxxx); xxx代表输入的数字量
  选择通道B
  write_TLV_5638(0xd001);B通道1.024基准电压
  write_TLV_5638(0xd002);B通道2.048基准电压 
  write_TLV_5638(0x4xxx); xxx代表输入的数字量
  同时选择两个通道
  write_TLV_5638(0x9001);B通道1.024基准电压  
  write_TLV_5638(0x9002);B通道2.048基准电压
  write_TLV_5638(0x1xxx); xxx代表B输入的数字量 
  write_TLV_5638(0x8xxx); xxx代表A输入的数字量
=============================================*/
#include"msp430x26x.h"
#include"TLV5638.h"
//===============DELAY=========================
void delay_DA(uint xms)
{
  uint i,j;
  for(i = xms; i > 0; i--)
      for(j = 220; j > 0; j--);
}
//==============wirte_TLV_5638==========================
void write_TLV_5638(uint data)
{
  uint i;
  TLV_5638_DIR;
  TLV_5638_OUT;
  CS_H;
  CS_L;
  delay_DA(1);
  for(i = 0; i < 16; i++)
  {
    SCLK_H;
    if(data & 0x8000) DATA_H;
    else DATA_L;
    SCLK_L;
    data <<= 1;
  }
  SCLK_H;
  CS_H;
  
}
//==============wirte_comB=========
void write_comB(uint value)
{
  write_TLV_5638(0xd001);//choose regi
  delay_DA(5);
  value = (0x4000 | value);
  write_TLV_5638(value);//对B 写0
  delay_DA(5);  
}
//==================================
原创粉丝点击