用过TLC3678的前辈们进来看看吧,谢谢~!

2019-03-24 12:13发布

最近在调试TLC3578,是TI公司的。感觉还蛮高端大气的,但是怎么调也调也调不出来。贴上简短程序,恳请大家帮帮忙。谢谢


/****************************************SPI接口***************************************************/
#include<msp430x14x.h>
#include"spi.h"

unsigned int RXbuffer[];  //输入缓冲数组

//SPI初始化设置,IO口配置
void SPI_Init(void)
{
  P4DIR|=BIT4+BIT5;
  P5DIR&=~BIT0;
}


//输出,即对从机写数据
void write_2byte(unsigned int data)
{
  unsigned int i;
  for(i=0;i<16;i++)
  {
    SCK_H;
    if(data&(0x8000))
      MOSI_H;
    else
      MOSI_L;
    SCK_L;
    data<<=1;
  }
}


//输入,即接收数据,读从机的数据
unsigned int read_14bit(void)
{
  unsigned int i,data;
  for(i=0;i<14;i++)
  {
    SCK_H;
      if(P5IN&BIT0)
      {
        data<<=1;
        data=data+BIT0;
      }
      else
        data<<=1;
        SCK_L;
  }
  return data;
}


/***************************************************TLC3578配置*********************************************************/

#include<msp430x14x.h>
#include"tlc3578.h"
#include"spi.h"

unsigned int RXbuffer_array[8];
//TLC3578初始化设置,IO口配置
void TLC3578_Init(void)   //这里没有配置就说明没有使用,其配置方式见电路说明,比如FS已经接DVDD
{
  P4DIR|=BIT6;   // /CS片选,低电平有效
  P5DIR&=~BIT1;   //  EOC或者/INT信号,读数据时转换完成标志
}


//TLC3578写入数据,FS=1
void TLC3578_Write(void)
{
  unsigned int TempData;
  TempData=Wt_cfr12+D11_H+D10_BOB+D9_SS+D8_INOSC+D7_SigEn+D65_REP+D2_INT+D10_FIFO_FULL;
  //TempData=0XFFFF;
  //delay_ms(100);
  CS_L;
  write_2byte(A0);
  CS_H;
  delay_us(10);
  CS_L;
  write_2byte(TempData);
  CS_H;

}

//TLC3578读数据,FS=1
void TLC3578_Read(void)
{
  unsigned int i;
  CS_L;
  write_2byte(FIFO_RD);
  CS_H;
  delay_us(10);
  CS_L;
   if(P5IN&BIT1==0)
   {
     for(i=0;i<8;i++)
       {
         RXbuffer_array=read_14bit();
       }
   }
  CS_H;
}

//输出测试

unsigned int out_data(void)
{
  unsigned int temp;
   temp=RXbuffer_array[1];
   return temp;
} 此帖出自小平头技术问答
0条回答

一周热门 更多>

相关问题

    相关文章