|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
easyarm2200adc程序选ain2通道问题 |
作者:dingming6 栏目:ARM技术 |
PINSEL1 = 0x01400000; // 设置P0.27、P0.28连接到AIN0、AIN1 ADCR = (1 << 0) | // SEL = 1 ,选择通道0 ((Fpclk / 1000000 - 1) << 8) | // CLKDIV = Fpclk / 1000000 - 1 ,即转换时钟为1MHZ (0 << 16) | // BURST = 0 ,软件控制转换操作 (0 << 17) | // CLKS = 0 ,使用11clock转换 (1 << 21) | // PDN = 1 , 正常工作模式(非掉电转换模式) (0 << 22) | // TEST1:0 = 00 ,正常工作模式(非测试模式) (1 << 24) | // START = 1 ,直接启动ADC转换 (0 << 27); // EDGE = 0 (CAP/MAT引脚下降沿触发ADC转换) DelayNS(10); // 延时 ADC_Data = ADDR; // 读取ADC结果,并清除DONE标志位 ADCR = (ADCR&0xFFFFFF00)|0x01|(1 << 24); // 切换通道并进行第一次转换 while( (ADDR&0x80000000)==0 ); // 等待转换结束 ADCR = ADCR | (1 << 24); // 再次启运转换 while( (ADDR&0x80000000)==0 ); ADC_Data = ADDR; // 读取ADC结果 现在改为连接AIN1、AIN2并先试AIN2 PINSEL1 = 0x05000000; // 设置P0.28、P0.29连接到AIN1、AIN2 ADCR = (3 << 0) | // SEL = 3 ,选择通道2 ((Fpclk / 4500000 - 1) << 8) | //CLKDIV=Fpclk / 4500000 - 1 即转换时钟为4.5MHZ (0 << 16) | // BURST = 0 ,软件控制转换操作 (0 << 17) | // CLKS = 0 ,使用11clock转换 (1 << 21) | // PDN = 1 , 正常工作模式(非掉电转换模式) (0 << 22) | // TEST1:0 = 00 ,正常工作模式(非测试模式) (1 << 24) | // START = 1 ,直接启动ADC转换 (0 << 27); // EDGE = 0 (CAP/MAT引脚下降沿触发ADC转换) DelayNS(10); // 延时 ADC_Data = ADDR; // 读取ADC结果,并清除DONE标志位 ADCR = (ADCR&0xFFFFFF00)|0x03|(1 << 24); // 切换通道并进行第一次转换 while( (ADDR&0x80000000)==0 ); // 等待转换结束 ADCR = ADCR | (1 << 24); // 再次启运转换 while( (ADDR&0x80000000)==0 ); ADC_Data = ADDR; // 读取ADC结果 反复试仍读到AIN0的值 |
2楼: | >>参与讨论 |
作者: l_zhongmin 于 2005/1/15 17:22:00 发布:
AIN2通道设置错了 AIN2通道设置错了 ADCR = (ADCR&0xFFFFFF00)|0x04|(1 << 24); |
3楼: | >>参与讨论 |
作者: dingming6 于 2005/1/15 20:02:00 发布:
多谢指教 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |