📄 drv_ad7683.c
字号:
/******************************************************************************
Copyright (C), 2007-2008, wanyi Tech. Co., Ltd.
FileName :drv_ad7683.c
Author :kevin
modify :
Version :1.0
Date :2007-6-28
Description :auto design for driver ad7683 function
Function List :void test_ad7683_pin(void)
void init_ad7683(void)
unsigned int drv_ad7683(void)
void test_ad7683(void)
******************************************************************************/
#include "\inc\system.h"
/******************************************************************************
Function: // void test_ad7683_pin(void)
Description: // for test ad7683 pin
Calls: // none
Called By: // none
Table Accessed: // none
Table Updated: // none
Input: // void
Output: // none
Return: // void
Others: // none
******************************************************************************/
void test_ad7683_pin(void)
{
unsigned char tmp=0;
AD7683_CS =0;
AD7683_CS =1;
AD7683_CS =0;
AD7683_CLK =0;
AD7683_CLK =1;
AD7683_CLK =0;
MAX336_EN =0;
MAX336_EN =1;
MAX336_EN =0;
MAX336_A0 =0;
MAX336_A0 =1;
MAX336_A0 =0;
MAX336_A1 =0;
MAX336_A1 =1;
MAX336_A1 =0;
MAX336_A2 =0;
MAX336_A2 =1;
MAX336_A2 =0;
MAX336_A3 =0;
MAX336_A3 =1;
MAX336_A3 =0;
PORTD =0x00;
PORTD =0xff;
PORTD =0x00;
while(1)
{
if(AD7683_DATA)
{
tmp=1;
}
else
{
tmp=0;
}
}
}
//=============================================================================
/******************************************************************************
Function: // void init_ad7683_pin(void)
Description: // for init ad7683
Calls: // none
Called By: // init()
Table Accessed: // none
Table Updated: // none
Input: // void
Output: // none
Return: // void
Others: // none
******************************************************************************/
void init_ad7683(void)
{
AD7683_CS =1;
AD7683_CLK =1;
AD7683_DATA =1;
}
//=============================================================================
/******************************************************************************
Function: // unsigned int drv_ad7683(void)
Description: // for drv ad7683
Calls: // none
Called By: // init ()
Table Accessed: // none
Table Updated: // none
Input: // void
Output: // none
Return: // void
Others: // none
******************************************************************************/
unsigned int drv_ad7683(void)
{
unsigned int read_addata=0;
unsigned char i;
AD7683_CS =0; //push down
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
/*
for(i=0;i<21;i++)
{
AD7683_CLK =1;
AD7683_CLK =0;
if(i>=4)
{
if(AD7683_DATA) //read ad data start at the 7th clock
{
read_addata=read_addata | 0x0001;
}
}
if(i<20)
{
read_addata=read_addata<<1;
}
}
*/
for(i=0;i<5;i++)
{
AD7683_CLK =1; //5 clock for ad convert
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
AD7683_CLK =0;
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
}
for(i=0;i<16;i++)
{
AD7683_CLK =1;
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
AD7683_CLK =0;
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
if(AD7683_DATA) //read ad data start at the 7th clock
{
read_addata=read_addata & 0xfffe;
}
else
{
read_addata=read_addata | 0x0001;
}
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
read_addata=read_addata<<1;
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
}
read_addata=read_addata>>1;
AD7683_CLK =1; //read stop
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
AD7683_CLK =0;
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
AD7683_CS =1; //pull up
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
return(read_addata);
}
//=============================================================================
/******************************************************************************
Function: // void test_ad7683(void)
Description: // for test ad7683
Calls: // none
Called By: // init ()
Table Accessed: // none
Table Updated: // none
Input: // void
Output: // none
Return: // void
Others: // none
******************************************************************************/
void test_ad7683(void)
{
unsigned int tmp_ad=0x0000;
// test_ad7683_pin();
MAX336_EN =1;
MAX336_A3 =1;
MAX336_A2 =0;
MAX336_A1 =0;
MAX336_A0 =0;
init_ad7683();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
while(1)
{
Nop();
Nop();
Nop();
MAX336_EN =1;
MAX336_A3 =1;
MAX336_A2 =0;
MAX336_A1 =0;
MAX336_A0 =1;
tmp_ad=drv_ad7683();
}
}
//=============================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -