谁来给我讲讲程序。。。2812与AD7928。。。什么意思啊。。。
/*
//读ADC转换结果:
AdcValueInt[0]=AdcOpr(0x8330); //设置通道0
AdcValueInt[0]=AdcOpr(0x8730); //读通道0,设置通道1;
AdcValueInt[1]=AdcOpr(0x8b30); //读通道1,设置通道2;
AdcValueInt[2]=AdcOpr(0x8f30); //读通道2,设置通道3;
AdcValueInt[3]=AdcOpr(0x9330); //读通道3,设置通道4;
AdcValueInt[4]=AdcOpr(0x9730); //读通道4,设置通道5;
AdcValueInt[5]=AdcOpr(0x9b30); //读通道5,设置通道6;
AdcValueInt[6]=AdcOpr(0x8330); //读通道6,设置通道0;
ADC:AD7928
1.当CS有效时,在时钟下降沿,需要16个Clock从DIn采样数据到控制寄存器,前12个时钟有效,装载到12位寄存器(高位在前).
寄存器的设置放映了下一次采样的设置.
2.寄存器设置详细说明:
bit 信号 意义
11 write 当装载时,该位位1,当该位为0时,寄存器其它11位不会改变.
10 SEQ 设置为0
9 NG
8-6 ADD 通道号选择
5,4 pM 电源管理,当设置为(11)时,速度最快.
3 Shadow 设置为0
2 NG
1 Range 本应用设置为1,表示量程为:0-Vf
0 Code 本应用设置为1,表示输出编码为无符号数(只能测正相电压)
本应用使用单通道采集,电源模式:11.
3.转换流程(满电源模式):
A.CS有效,写控制寄存器,选择通道;
B.延时1uS,等待转换结束.从Dout读出转换结果,同时从Din写控制寄存器,准备下一次转换.
C.重复B
4.Dout输出:16位数据,低12位有效.低12位/4096
*/
#include "DSP28_Device.h"
#define SOUT GpioDataRegs.GPFDAT.bit.GPIOF0 //-o master out
#define SIN GpioDataRegs.GPFDAT.bit.GPIOF1 //i master in
#define SCK GpioDataRegs.GPFDAT.bit.GPIOF2 //clk
#define SCE GpioDataRegs.GPFDAT.bit.GPIOF3 //ce
//-----------------------------------------------------
void AdcIni(void)
{
//初始化 片选 时钟
SCK=1;
SCE=1;
}
//-----------------------------------------------------
unsigned int AdcOpr(unsigned int byte) //对ADC的操作:产生16个Clk,写控制寄存器,同时读转换结果.执行该函数的条件:SCE=1;SCK=1
//函数执行后,信号的状态:SCE=1;SCK=1
{
unsigned int m,data_buff,DataOut;
data_buff=byte;
DataOut=0; //转换结果初始化为0
SCK=1; //空闲时时钟为高电平
SCE=0; //片选有效
for(m=0;m<16;m++)
{
//准备好数据
SOUT=data_buff/0x8000;
data_buff=data_buff<<1;
//保持高电平
NOP;
NOP;
SCK=0; //下降沿产生,写寄存器,同时上次转换结果出现在SIN,为了更好的配合时序,在上升沿之前读出.
if(SIN) DataOut=DataOut|0x01; //最低位置1
DataOut=DataOut<<1; //注意:多移位了一次,需要在后面修正
//保持低电平
NOP;
NOP;
SCK=1; //上升沿产生
}
SCE=1; //片选无效
DataOut=(DataOut & 0x1fff)/2;
//for(m=0;m<16;m++) NOP;
return DataOut;
}
//===========================================================================
// No more.
//===========================================================================
回复 楼主 guizilai 的帖子
不知道楼主说什么,后面不是都有注释吗,只不过是寄存器的一些地址,设置而已!
我的邮箱gaoxiaoan123@163.com!回帖是一种美德!互相帮助,共同进步!
口头禅:生活在于创造机会,把握机会!