郁闷了几天了也没搞明白怎么回事。是单通道单次转换的 下面附了程序。 我用的是MC9S12D64
void initATD0(void) {
ATD0CTL2 = BM_ADPU|BM_AFFC; ATD0CTL4 = BM_PRS0; ATD0DIEN = 0X00; } UINT16 getATD0(UINT8 channel) {
ATD0CTL3 = BM_S1C;
ATD0CTL5 = BM_DJM | (channel & 0x07);
while((ATD0STAT1 & 0XFF) == 0X01) ;
return ATD0DR0; } void main(void) { UINT16 res; initATD0(); res = getATD0(0); } 问题:状态寄存器中表示AD转换是否完成的位永远为0,存结果的寄存器的值也一直是00,没有变过。 这应该说明是没有完成过1次AD转换。可是为什么AD模块不工作呢?
[此贴子已经被作者于2006-9-13 15:58:13编辑过] |