📄 adc.c
字号:
/*********************************************/
// File Name: adc.c
// Author: henny
// Date: 2006/3/1
/*********************************************/
#include <SST89x5xxRD2.h>
#include <intrins.h>
#include "Public.h"
#define RDYB P1_6
#define CS5532_CS P3_4
extern UNION_LONG temp_LONG;
VOID SPI_Init()
{
P1=0xf0;
SPCR=0x50;
}
BYTE SPI_RW(BYTE Data)
{
BYTE temp;
SPDR=Data;
do
{
temp=SPSR&0x80;
}while(temp!=0x80);
SPSR&=0x7f;
return SPDR;
}
/*
VOID Read_Register(BYTE command)
{
BYTE data j;
CS5532_CS=0;
_nop_();
_nop_();
SPI_RW(command);
for(j=0;j<4;j++)
RxdByte[j]=SPI_RW(0xfe);
_nop_();
_nop_();
CS5532_CS=1;
_nop_();
_nop_();
}
*/
VOID Write_Register(BYTE command,BYTE top,BYTE high,BYTE mid,BYTE low)
{
CS5532_CS=0;
_nop_();
_nop_();
SPI_RW(command);
SPI_RW(top);
SPI_RW(high);
SPI_RW(mid);
SPI_RW(low);
_nop_();
_nop_();
CS5532_CS=1;
_nop_();
_nop_();
}
VOID Start_Continuous_Convert()
{
CS5532_CS=0;
_nop_();
_nop_();
SPI_RW(0xc0);
}
/*
VOID Single_Convert()
{
BYTE data j;
CS5532_CS=0;
_nop_();
_nop_();
SPI_RW(0x80);
while(RDYB);
SPI_RW(0x00);
for(j=0;j<3;j++)
RxdByte[j]=SPI_RW(0xfe);
SPI_RW(0xfe);
_nop_();
_nop_();
CS5532_CS=1;
_nop_();
_nop_();
}
*/
VOID CS5532_Init()
{
SPI_Init();
Write_Register(0xff,0xff,0xff,0xff,0xff);
Write_Register(0xff,0xff,0xff,0xff,0xff);
Write_Register(0xff,0xff,0xff,0xff,0xff);
Write_Register(0xff,0xff,0xff,0xff,0xfe);
Write_Register(0x03,0x20,0x00,0x00,0x00);
Write_Register(0x03,0x00,0x00,0x00,0x00);
Write_Register(0x05,0x32,0x40,0x32,0x40);
Write_Register(0x02,2,105,0,0);
Start_Continuous_Convert();
}
DWORD Get_AD_Convert_Data()
{
while(RDYB);
SPI_RW(0x00);
temp_LONG.B[0]=0x00;
temp_LONG.B[1]=SPI_RW(0x00);
temp_LONG.B[2]=SPI_RW(0x00);
temp_LONG.B[3]=SPI_RW(0x00);
SPI_RW(0x00);
return(temp_LONG.L);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -