智能车制作
标题:
电磁求救
[打印本页]
作者:
倾国倾城
时间:
2015-7-16 21:33
标题:
电磁求救
我的小车不检测电磁 而且 舵机时而动时而不动,是不是AD的原因? 急死了,谢谢你们!
#include "include.h"
/*****************AD初始化***********************/
void ATD_Init(void)
{
ATD0CTL1=0x00;//7:1-外部触发,65:00-8位精度,4:放电,3210:ch /an0 触发 12位精度
ATD0CTL2=0XC0;//禁止AD 快速清零
ATD0CTL3=0XC0;//右对齐 每次转换8个序列, No FIFO, Freeze模式下继续转
ATD0CTL4=0X03; //采集到模拟量 十位二进制 采样2AD 时钟周期 (13m)
ATD0CTL5= 0X30;//BIT6:0特殊通道禁止 BIT5:1连续转换 BIT4:1多通道轮流采样
ATD0DIEN=0x00;
}
int Read_ATD(char ch)
{
int ATD_Value,ad_L=0,ad_H;
while(!ATD0STAT0_SCF);
switch(ch)
{
case 0:
ad_L= ATD0DR0L;
ad_H= ATD0DR0H;
break;
case 1:
ad_L= ATD0DR1L;
ad_H= ATD0DR1H;
break;
case 2:
ad_L= ATD0DR2L;
ad_H= ATD0DR2H;
break;
case 3:
ad_L= ATD0DR3L;
ad_H= ATD0DR3H;
break;
case 4:
ad_L= ATD0DR4L;
ad_H= ATD0DR4H;
break;
case 5:
ad_L= ATD0DR5L;
ad_H= ATD0DR5H;
break;
case 6:
ad_L= ATD0DR6L;
ad_H= ATD0DR6H;
break;
case 7:
ad_L= ATD0DR7L;
ad_H= ATD0DR7H;
break;
}
ATD_Value = ((ad_H&0x0F)<<8)|(ad_L);
return ATD_Value;
}
int ATD_Average_10(char ch)
{
char i=0;
int value[8]={0};
long AD_value=0;
for(i=0;i<8;i++)
{
value[i]=Read_ATD(ch);
AD_value+=value[i];
}
AD_value/=8;
return ((int)AD_value);
}
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2