智能车制作
标题:
AD 信号检测
[打印本页]
作者:
卟李狗昕
时间:
2012-12-7 23:02
标题:
AD 信号检测
最近联系AD 信号检测,效果不是很好,求个AD检测模块的程序参考一下,谢谢
作者:
quzhanguang
时间:
2012-12-7 23:56
我一直用的代码
void AD_N_Init(void)
{
ATD0CTL1=0b00100000; //8位精度,转换前不放电
ATD0CTL2=0b01000000; // 快速清零, 无等待模式, 禁止外部触发, 中断禁止
ATD0CTL3=0b00001000; // 右对齐无符号,转换序列长度为1, No FIFO, Freeze模式下继续转换
ATD0CTL4=0b00000001; // 为确定值 转换4个时钟, ATDClock=[BusClock*0.5]/[PRS+1]=8MHz; PRS=0,
/* 转换时间 = Initial Sample Time + Programmed Sample Time + Resolution Period
=2+4+10=16ATDclock=16*1/8=2us */
// 要求每隔约2us采集一点 (或更小) 一行采26点
ATD0CTL5=0b00110000; //单通道采样,持续采样,选择通道0
ATD0DIEN=0b00000000; // 禁止数字输入
}
int AD_N(int i)
{ //(AD)转换结果获取函数,抄来的。虽然不懂,就这么用了
int IOCcnt;
ATD0CTL2=0x40;
switch(i){
case 0: ATD0CTL5=0x20;break;
case 1: ATD0CTL5=0x21;break;
case 2: ATD0CTL5=0x22;break;
case 3: ATD0CTL5=0x23;break;
case 4: ATD0CTL5=0x24;break;
case 5: ATD0CTL5=0x25;break;
case 6: ATD0CTL5=0x26;break;
case 7: ATD0CTL5=0x27;break;
}
while(!ATD0STAT0_SCF);
IOCcnt=(ATD0DR0>>6);
return IOCcnt;
}
复制代码
作者:
卟李狗昕
时间:
2012-12-8 09:50
谢谢
作者:
叶子一哥
时间:
2012-12-8 11:52
作者:
x舞z
时间:
2012-12-8 13:49
呵呵,同求
作者:
dapan945
时间:
2012-12-8 21:04
实话说没看懂,有那么复杂吗
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2