📄 adc.c
字号:
//adc.c
//
#include "AppDefine.h"
//排序
void bubble(unsigned short *item, unsigned char count)
{
register unsigned char a,b;
register unsigned short t;
for(a=1;a<count;++a)
for(b=count-1;b>=a;--b){
if(item[b-1]>item[b]){
t=item[b-1];
item[b-1]=item[b];
item[b]=t;
}
}
}
unsigned short AD_acq(void)
{
unsigned int result;
unsigned char i;
unsigned char al=0,ah=0;
DCS0=1;
DCLK=1;
DCLK=0;
DOUT=1;
DCS0=0;
while(DOUT==1) { //if(DOUT==0) break;
DCLK=1;
DCLK=0;
DOUT=1;
}
for(i=0;i<4;i++) {
DOUT=1;
DCLK=1;
DCLK=0;
ah<<=1;
if(DOUT) {
ah|=0x01;
}
}
for(i=0;i<8;i++)
{
DOUT=1;
DCLK=1;
DCLK=0;
al<<=1;
if(DOUT){
al|=0x01;
}
}
DCS0=1;
result=ah;result<<=8;result|=al;//得到AD值
return (result);
}
//10----01,234567,8,9
unsigned short AD_result (void)
{
unsigned short i,addata[10],sum;
float temp;
for(i=0;i<10;i++)
addata[i] = AD_acq ();
//sort
bubble(addata, 10);
//中间三个sum--平均
sum=0;
for(i=2;i<8;i++)
sum += addata[i];
temp = sum/6.0;
//mV
//temp = temp * 3300/1024.0;
//temp *= 3.22265625 ;
return (unsigned short)temp;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -