智能车制作

标题: AD转换出问题了!大神求解! [打印本页]

作者: 57652761    时间: 2015-3-3 22:20
标题: AD转换出问题了!大神求解!
各位大神!舵机单独测试可以转,传感器也没有问题,AD貌似除了问题,但是不知道在哪里,求指点啊!拜托了!这是AD初始化
void InitAD(void)
{   



  ATD0CTL1=0x00; //00000000  选择AD 通道为外部触发,8 位精度,采样前不放电
  ATD0CTL2=0x40; //01000000  标志位自动清零,禁止外部触发, 禁止中断
  ATD0CTL3=0x88; //10001000  右对齐无符号,每次转换1 个序列, No FIFO, Freeze 模式下继续转
  ATD0CTL4=0x01; //00000001  采样时间为4 个AD 时钟周期,PRS=1,ATDClock=16/(2*(1+1))=4MHz
  ATD0CTL5=0x23; //00100011 特殊通道禁止,连续转换,单通道转换,输入通道为3
  ATD0DIEN=0x00; //00000000  禁止数字输入

   }


主函数中AD部分

        while(!ATD0STAT0_SCF);     //等待转换结束,退出循环  
        ad_value=(int)ATD0DR0L;      
       Delay(100);                     
       PWMDTY01 =1500+ad_value;



舵机就是不转,各位大神求解啊!小弟不胜感激啊!

作者: 57652761    时间: 2015-3-3 22:37
自己顶一个,唉,找不到问题所在真难受。
作者: 支点305    时间: 2015-3-4 10:36
是不是1500+ad_value后超出舵机高电平时间范围了
先把转化的数据发到电脑看看
作者: 57652761    时间: 2015-3-4 12:45
支点305 发表于 2015-3-4 10:36
是不是1500+ad_value后超出舵机高电平时间范围了
先把转化的数据发到电脑看看

现在改成了这样。我们用的128的芯片,用导线连接主板上的输入引脚AD和GND,舵机就会打到中间,但是用稳压源连接导线不论多大的电压,舵机都会左右摇摆。这是为什么?


void InitAD(void)
{   
   
  
   ATD0DIEN=0x00; //00000000  禁止数字输?
  ATD0CTL1=0x00; //00000000  选择AD 通道为外部触发,8 位精度,采样前不放电
  ATD0CTL2=0xC0; //01000000  标志位自动清零,禁止外部触发, 禁止中断
  ATD0CTL3=0x0D; //11000100  右对齐无符号,每次转换2 个序列, No FIFO, Freeze 模式下继续转
  ATD0CTL4=0xE1; //00000001  采样时间为4 个AD 时钟周期,PRS=1,ATDClock=24/(2*(1+1))=4MHz
  ATD0CTL5=0x23; //00110011  特殊通道禁止,连续转换,多通道转换,输入通道3

   }


主函数中

  while(!ATD0STAT2L_CCF3);     //等待转换结束,退出循环  
     LEFT=(byte)ATD0DR3H;
     while(!ATD0STAT2L_CCF4);     //等待转换结束,退出循环  
     RIGHT=(byte)ATD0DR4H;  

  PWMDTY01 =1500+LeftSt+RightSt;
      Delay(100);   






欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2