高级会员
- 积分
- 865
- 威望
- 540
- 贡献
- 143
- 兑换币
- 3
- 注册时间
- 2009-10-16
- 在线时间
- 91 小时
|
1贡献
我调的AD读不到数据,但是只有0 192 128 64 几个数字在自己变化 这是为什么呢?求各位大哥帮忙!!
附上小弟的程序
void ADCInit(void)
{
ATD0CTL2=0xC2; //AD模块上电, 快速清零, 无等待模式, 禁止外部触发, 中断允许
ATD0CTL3=0x20; // 每个序列4次转换, No FIFO, Freeze模式下继续转换
ATD0CTL4=0x83; //分频系数8 8位精度, 2个时钟, ATDClock=[BusClock*0.5]/[PRS+1] ; PRS=3, divider=8
ATD0CTL5=0xA0; //右对齐无符号,单通道采样,通道0
ATD0DIEN=0x00; // 禁止数字输入
}
word AD_wData = 0;
void main(void) {
// DisableInterrupts;
ADCInit();
DDRB = 0xFF;
PORTB = 0xFF;
EnableInterrupts;
for(;;) { }
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 22 Int_AD0(void)
{
DisableInterrupts;
AD_wData = ATD0DR0; //Read out the Result Register
PORTB = (byte)AD_wData;
wait();
EnableInterrupts;
}
#pragma CODE_SEG DEFAULT |
|