⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0832.c

📁 ti公司msp430单片机驱动ad0832芯片
💻 C
字号:
#include <msp430x16x.h>
#include "0832.h"

unsigned char adc0832(unsigned char channel,unsigned char* data)
{
  unsigned char i=0, temp=0;
  unsigned char datamsb=0, datalsb=0;
  
  if(channel == 0) channel=2;
  if(channel == 1) channel=3;
  
  DataDir |= (CS+DI+CLK);
  SET_DI;   //启动信号
  _NOP();
  _NOP();
  _NOP();
  CLR_CS;   //拉低CS端
  _NOP();   
  _NOP();
  _NOP();
  SET_CLK;  //拉高CLK端
  _NOP();
  _NOP();
  _NOP();
  CLR_CLK;  //拉低CLK端,形成下降沿1
  _NOP();
  _NOP();
  _NOP();
  
  SET_CLK;  //拉高CLK端
  if(channel & 0x01) 
    SET_DI;
  else
    CLR_DI;
  _NOP();
  _NOP();
  _NOP();
  //SET_CLK;  //拉高CLK端
  //_NOP();
  //_NOP();
  CLR_CLK;  //拉低CLK端,形成下降沿2
  _NOP();
  _NOP();
  _NOP();
  
  SET_CLK;  //拉高CLK端
  if(channel & 0x02) 
    SET_DI;
  else
    CLR_DI;
  _NOP();
  _NOP();
  _NOP();
  //SET_CLK;  //拉高CLK端
  //_NOP();
  //_NOP();
  CLR_CLK;  //拉低CLK端,形成下降沿3
  SET_DI;   //控制命令结束
  _NOP();
  _NOP();
  _NOP();
  
  DataDir &= ~DO;
  for(i=0;i<8;i++)
  {
    SET_CLK;  //拉高CLK端
    _NOP();
    _NOP();
    _NOP();
    CLR_CLK;  //拉低CLK端,形成下降沿
    _NOP();
    _NOP();
    _NOP();
    if(DataIn & DO)
      temp=1;
    else
      temp=0;
    datamsb |= (temp <<(7-i));
  }
  for(i=0;i<8;i++)
  {
    if(DataIn & DO)
      temp=1;
    else
      temp=0;
    datalsb |= (temp<<i);
    SET_CLK;  //拉高CLK端
    _NOP();
    _NOP();
    _NOP();
    CLR_CLK;  //拉低CLK端,形成下降沿
    _NOP();
    _NOP();
    _NOP();
  }
  
  SET_CS;    //拉高cs
  //SET_CLK;
  
  if(datamsb == datalsb)
  {
    *data = datalsb;
    return 1;
  }
  else
    return 0;
}


void main(void)
{
  unsigned char result=0, data=0; 
  unsigned int iq0;
  WDTCTL = WDTPW + WDTHOLD; 
  BCSCTL1 &= ~XT2OFF;     		
  do
  {
    IFG1 &= ~OFIFG;			
    for (iq0 = 0xFF; iq0 > 0; iq0--);	
  }
  while ((IFG1 & OFIFG) != 0);		
  BCSCTL2 =SELM_2+SELS;
  
  do
    result = adc0832(0,&data);
  while(result !=1);
  LPM3;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -