智能车制作

标题: 高手请留言…… [打印本页]

作者: 15239172008    时间: 2011-12-18 12:17
标题: 高手请留言……
自己写的ad,可怎么也不工作,在网上搜的程序,下进去也不会工作,我看了看程序,ad转换总卡死在while(!ATD0STAT0_SCF);句上。请高手指教???
下面是代码:
void vADInit(void)
{
    ATD0CTL1=0b00000000;//8位精度
    ATD0CTL2=0b01000000;//禁止外部触发,标志位快速清零,中断禁止
    ATD0CTL3=0b10001000;//右对齐无符号.转换序列长度为1,No FIFO模式,Freeze模式下继续转换?
    ATD0CTL4=0b00000111;//4AD采样周期,ATDClock=[BusClock*0.5]/[PRS+1]  ; PRS=15, divider=32 ?
    ATD0CTL5=0b00100111;//特殊通道禁止,单通道采样,扫描模式连续采样,ch AN7
    ATD0DIEN=0b00000000;//禁止数字输入
}
unsigned char ReadATD()
{
    byte ad=0;  
    while(!ATD0STAT0_SCF);
    ad= ATD0DR0L;
    return ad;
}
作者: 15239172008    时间: 2011-12-18 12:17
总卡死在while(!ATD0STAT0_SCF);
为什么??????
作者: sonwendi    时间: 2011-12-18 13:25
查一查是不是状态寄存器弄错了
作者: 15239172008    时间: 2011-12-18 14:38
回复 3# sonwendi

没错呀,状态寄存器就是ATD0STAT0.
位寻址到ADT0STAT0_SCF,这一位表示队列转换结束后,会置1.
[attach]16715[/attach]
作者: 15239172008    时间: 2011-12-18 14:38
继 续 等 大 侠 们 解 答 ……
作者: xining_yang    时间: 2011-12-18 16:26

作者: shijie1989    时间: 2011-12-18 16:49
有点困难啊
作者: shijie1989    时间: 2011-12-18 16:49
不是很明白啊
作者: buzhidao    时间: 2011-12-18 17:20
我是低手
作者: sonwendi    时间: 2011-12-18 22:07
回复 4# 15239172008


    你似乎用的是第七通道,试一试:
    while(!ATD0STAT2_CCF7);




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