首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

求高人指点!关于mr16的AD转换

求高人指点!关于mr16的AD转换

AD转换程序如下,不知道是什么原因,连对Vrefl的转换值都不是正确的 最终结果是highref=255;lowref的值不定,程序实在看不出来有什么问题,请高人帮忙看一下,很急,谢谢了啊 还有其它外部信号进行的AD采样也是值不定,能够采到正确值,但是也有别的结果,值不定。非常感谢 #include /* for EnableInterrupts macro */ #include /* include peripheral declarations */ /*****单片机初始化*****/ void MCUini(void) { /*****setup PLL clock*****/ PBWC=0X80; PCTL&=~(0x20); // 关闭PLL以便设置PPG PPG=0x36; // 外部时钟源9.8304MHz,总线频率7.3728MHz // VCO频率倍数N=3,center-of-range倍数L=6 PCTL |= 0x20; // 启动PLL while(~PBWC&0x40); // 等待PLL锁定LOCK=1 PCTL |= 0x10; // 选用PLL时钟,BCS=1 /***** ADC initialization *****/ ADCLK=0x70; // fADIC=0.9216MHz } void main(void) { char highref; char lowref; MCUini(); for(;;) { __RESET_WATCHDOG(); /* feeds the dog */ ADSCR=0x1d; while(!ADSCR_COCO); highref=ADRL; ADSCR=0x1E; while(!ADSCR_COCO); lowref=ADRL; } }
是不是低参考电平有毛刺?
我也认为是低电平不稳造成的,但是硬件检测结果是基本上没有什么毛刺。
我昨天将ADC时钟频率改成了9.8304MHz(现在整个系统使用multilink提供的9.8304MHz作为外部时钟输入),结果发现转换结果成为了正确的,或者用内部总线频率7.3728MHz,都可以得到正确的结果。
是不是由于multilink造成的问题啊?
返回列表