📄 adc.c
字号:
void ADCInit()
{
AMX0CF = 0x00; //通道设置为单端输入模式
AMX0SL = 0x0F; //选择通道7
ADC0CF = 0xf8; //设置采样转换时钟周期
ADC0CN = 0xD0; //采样控制使能
}
void ADC_Start(BYTE CHAN)
{
AMX0SL = CHAN; //选择通道7
ADC0CN &= 0xDF; //清除中断控制位
ADC0CN |= 0x10; //启动采样转换
}
/*
uint ReadADC()
{
byte DatL,DatH;
DatL = ADC0CN;
if(DatL&0x20)
{
DatL = ADC0L;
DatH = ADC0H;
}
ADC0CN &= 0xDF;
return(DatH*256+DatL);
}
*/
uint TempCount(uint temp)
{
// uint dat;
// ulong ch;
float a,b,c;
temp/=4;
a = 0.776*1024.0/3.3;
b = 0.00286*1024.0/3.3;
//dat = 0.776*1024/3.3 = 241;
//ch = 0.00286*1024.0/3.3= 0.887;
a += (b*22);
c = temp;
c -= a;
//c *= 10;
c /= b;
return (uint)c;
}
void PADCGgatherInt() interrupt 15
{
AdDat.Byt.Li= ADC0L;
AdDat.Byt.Hi = ADC0H;
ADC0CN &= 0xDF;
AdcBuff[CHAN][adcbufCnt]=AdDat.Dat;
CHAN++;
if(CHAN<8) ADC_Start(CHAN);
//else CHAN = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -