📄 ad.c
字号:
//文件名 AD.C
//目 的 AD采集
//Copyright (c) 2006-2007 东方久乐公司电子研究所
//编 写 文洪奎 2007-01-15
//修 改
//修改原因
#include "ad.h"
#include "global.h"
//0 FI1 ATD0
//1 FI2 ATD1
//2 R1 ATD8
//3 R2 ATD9
//4 I1 ATD6
//5 I2 ATD5
unsigned int ADBuf[8];
extern SYSTEMSTR mSystem;
unsigned int GetAD(char nCh)
{
unsigned int ADR;
char i;
ADR = 0;
for( i = 0; i < 16; i++)
{
ADSCR = nCh;
while(!ADSCR_COCO);
ADR = ADR + ADR0;
}
return ADR / 16;
}
unsigned int DatatoRes(char nCh,unsigned int Data)
{
if(nCh == 1)
{
if(Data < mSystem.R1_O)
return 0;
else
return (Data - mSystem.R1_O) * mSystem.R1_S / 8;
}
if(nCh == 2)
{
if(Data < mSystem.R2_O)
return 0;
else
return (Data - mSystem.R2_O) * mSystem.R2_S / 8;
}
return 0;
}
void InitAD(void)
{
DDRC_DDRC3 = 0; //电阻测量
DDRC_DDRC4 = 0; //电阻测量
ADICLK = 0x034; //00110100
// ADSCR = 0x040; //0ch 开中断
}
__interrupt void AD_Interrupt(void) //AD转换
{
static char ch = 0;
static char pBuf = 0;
ADBuf[ch] = ADR0;
ch++;
switch(ch)
{
case 1:
ADSCR = 0x041;
break;
case 2:
ADSCR = 0x048;
break;
case 3:
ADSCR = 0x049;
break;
case 4:
ADSCR = 0x046;
break;
case 5:
ADSCR = 0x045;
break;
default:
ADSCR = 0x040;
ch = 0;
// if(pBuf < 7)
// pBuf++;
// else
// pBuf = 0;
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -