• 大小: 6KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: 其他
  • 标签: ad7794  

资源简介

该代码主要是ad7794具体操作使用方法,ad7794主要应用不高精度测量上面的AD转换器

资源截图

代码片段和文件信息

/******************** (C) COPYRIGHT 2014 XX ********************************** * 文件名 :ad7794_spi.c
* 描述 :本函数是XX仪表项目的AD7794的驱动程序
* 平台 :Keil 4 A51
* 库版本 :使用了宏晶科技的相关资料及程序
* 作者 :XXX
* 时间 :2014.3.19
**********************************************************************************/

#include 
#include “ad7794_spi.h“
float L_IN = 0 PA_IN = 0 PT_IN = 0 PT_Z = 0;
u32 atemp = 0;



/********************************* SPI *******************************/
/************************************************
AD7794 SPI初始化
入口参数: 无
出口参数: 无
************************************************/
void AD7794InitSpi(void)
{
  ACC = P_SW1;                                        //切换到第一组SPI ACC &= ~(SPI_S0 | SPI_S1); //SPI_S0=0 SPI_S1=0
  P_SW1 = ACC;                                        //(P1.2/SS P1.3/MOSI P1.4/MISO P1.5/SCLK)
  // ACC = P_SW1;                                     //可用于测试U7U7使用的是第二组SPI控制Flash
  // ACC &= ~(SPI_S0 | SPI_S1);                       //SPI_S0=1 SPI_S1=0
  // ACC |= SPI_S0;                                   //(P2.4/SS_2 P2.3/MOSI_2 P2.2/MISO_2 P2.1/SCLK_2)
  // P_SW1 = ACC;
  // ACC = P_SW1;                                     //切换到第三组SPI
  // ACC &= ~(SPI_S0 | SPI_S1);                       //SPI_S0=0 SPI_S1=1
  // ACC |= SPI_S1;                                   //(P5.4/SS_3 P4.0/MOSI_3 P4.1/MISO_3 P4.3/SCLK_3)
  // P_SW1 = ACC;
  SPSTAT = SPIF | WCOL;                               //清除SPI状态
  SS = 1;                                             //关闭SPI片选
  SPCTL = SSIG | SPEN | MSTR | CPOL | CPHA | SPDH;    //设置SPI为主模式 空闲为高 前沿驱动后沿采样
  //CPU_CLK/16 CPU:33.1776Hz
  //IE2 |= ESPI;                                      //使能SPI传输中断
  //EA = 1; //开总中断
  //P1M1 |= 0x00;
  //P1M0 |= 0x04;                                     //配置SS引脚为推挽输出
  //P1M1 |= 0x00;
  //P1M0 |= 0x08;                                     //配置DIN引脚为推挽输出
  //P1M1 |= 0x10;                                     //配置DOUT引脚为高阻输入
  //P1M0 |= 0x00;
  //P1M1 |= 0x00;
  //P1M0 |= 0x20;                                     //配置SCLK引脚为推挽输出
  //DIN = 1;
  //SS = 1;
  //SCLK = 1;
}


/************************************************
SPI中断服务程序
************************************************/
/*void spi_isr() interrupt 9 using 1 //SPI传输完成中断
{
SPSTAT = SPIF | WCOL; //清除SPI状态位
g_fSpiBusy = FALSE;
//user code
}*/


/************************************************
使用SPI方式与目标设备进行数据交换
入口参数:
dat : 准备写入的数据
出口参数:
从目标设备中读出的数据
************************************************/
BYTE SpiShift(BYTE dat)
{
  SPDAT = dat;                                        //触发SPI发送
  while (!(SPSTAT & SPIF));                           //等待发送完成
  SPSTAT = SPIF | WCOL;                               //清除SPI状态位
  return SPDAT;
}

/*
BYTE SpiShift(BYTE dat)
{
  u8 i = 0;
  u8 temp = 0;
  for(i = 0; i < 8; i++)
  {
    temp <<= 1;
    SCLK = 0;
    if((dat & 0x80) == 0x80)
    DIN = 1;
    else
    DIN = 0;
    dat <<

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      11378  2015-12-18 10:31  ad7794_spi.c

     文件      12010  2015-12-16 16:33  ad7794_spi.h

----------- ---------  ---------- -----  ----

                23388                    2


评论

共有 条评论

相关资源