2652|0

14

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

用过TLC3678的前辈们进来看看吧,谢谢~! [复制链接]

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


/****************************************SPI接口***************************************************/
#include
#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
#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;
}
 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表