标题:
不知为什么ATD0中无法实现双路转换
[打印本页]
作者:
hljgcxylp
时间:
2008-4-2 13:59
标题:
不知为什么ATD0中无法实现双路转换
#include
/* common defines and macros */
#include
/* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
void delay_1ms(void){
unsigned int i;
for(i=0;i<1280;i++); //1280是调节关键
}
//**********初始化AD模块**********************//
void AD_Init(void) //初始化
{
ATD0CTL2=0xC2; // AD模块上电, 快速清零, 无等待模式, 禁止外部触发, 中断禁止
delay_1ms();
ATD0CTL3=0x10; // 转换序列长度为2, FIFO=0, Freeze模式下继续转换
ATD0CTL4=0x83; // 8位精度, 2个时钟, ATDClock=[BusClock*0.5]/[PRS+1] ; PRS=3,
//divider=8
ATD0CTL5=0xB4; // 右对齐无符号,多通道采样,通道4为输入通道
ATD0DIEN=0x00; // 禁止数字输入
}
//**********AD中断模块**********************//
#pragma CODE_SEG NON_BANKED
#pragma TRAP_PROC
void AD_inturrept(void){ //AD中断程序
if(ATD0STAT1_CCF4==0) PORTB =~(char)ATD0DR4;//在B口显示转换值
if(ATD0STAT1_CCF5==0) PORTA =~(char)ATD0DR5;//在A口显示转换值
}
//**********主程序**********************//
void main(void) {
DisableInterrupts;
DDRB=0xFF;
DDRA=0XFF;
PORTB=0xFF;
PORTA=0X00;
AD_Init(); //AD初始化
EnableInterrupts;
for(;;){}
}
当FIFO=0时,ATD0中通道4、5的转化结果不是应该存储在ATD0DR4和ATD0DR5中吗 但我在这两个结果寄存器中却读不到数据 在ATD0DR0中能够读到 不知这是为什么 请各位高人为我指点迷津 先谢了!
作者:
strongchen
时间:
2008-4-2 14:29
请参考这个帖子:
http://bbs.eccn.com/dispbbs.asp?boardID=3&RootID=125170&ID=125170
作者:
hljgcxylp
时间:
2008-4-4 12:00
非常感谢版主!!
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0