[分享] msp430f2618写16位双通道 SPI接口DA DAC8552 精确度超高

火辣西米秀   2020-12-20 08:44 楼主

直接上代码,我就不做太多解释了。。

#include "msp430x26x.h"
#include "DAC8552.H"
//===============DELAY=========================
void delay_DA(uint xms)
{
  uint i,j;
  for(i = xms; i > 0; i--)
      for(j = 220; j > 0; j--);
}
/*******************************************
函数名称:write_DAC8552
功    能:写8552DA芯片
参    数:data 24位数据       
返回值  :无
********************************************/
void write_DAC8552(long int data)
{
  uint i;
  DAC8552_DIR;
  DAC8552_OUT;
  CS_H;
  CS_L;
  delay_DA(1);
  for(i = 0; i < 24; i++)
  {
    SCLK_H;
    if(data & 0x800000) DATA_H;
    else DATA_L;
    SCLK_L;
    delay_DA(1);
    data <<= 1;
  }
  SCLK_L;
  CS_H;
}


/*******************************************
函数名称:write_DAC8552_channelAB
功    能:写8552DA芯片
参    数:data 24位数据       
返回值  :无
********************************************/


void write_DAC8552_channelAB(long int data1,long int data2)
{
  data1 = data1 | 0x000000;
  write_DAC8552(data1);
  delay_DA(5);
  data2 = 0x340000 | data2;
  write_DAC8552(data2);
  delay_DA(5);
}
/*******************************************
函数名称:updata_DAC8552_channelAB
功    能:更新数据
参    数:data 24位数据       
返回值  :无
********************************************/
void updata_DAC8552_channelAB(long int data1,long int data2)
{
  data1 = data1 | 0x100000;
  write_DAC8552(data1);
  delay_DA(5);
  data2 = data2 | 0x240000;
  write_DAC8552(data2);
  delay_DA(5);
}

回复评论 (1)

謝謝分享 ! 但是怎麼少了 DAC8552.H ? 可以補上?

点赞  2020-12-21 09:55
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复