[ARM入门]

周立功SmartARM2200 模数转换实验的疑问-求助

[复制链接]
572|1
手机看帖
扫描二维码
随时随地手机跟帖
xinzhui1|  楼主 | 2018-4-4 10:36 | 显示全部楼层 |阅读模式
ADCR = (ADCR&0x00FFFF00)|0x01|(1 << 24);   // 设置通道1,并进行第一次转换
        while( (ADDR&0x80000000)==0 );              // 等待转换结束
       ADCR = ADCR | (1 << 24);                        // 再次启运转换
        while( (ADDR&0x80000000)==0 );              // 等待转换结束

        ADC_Data = ADDR;                                    // 读取ADC结果
        ADC_Data = (ADC_Data>>6) & 0x3FF;           // 提取AD转换值
        ADC_Data = ADC_Data * 3300;                      // 数值转换
        ADC_Data = ADC_Data / 1024;
        sprintf(str, "%4dmV    at    VIN1", ADC_Data);
        ISendStr(0, 1, 0x34, str);         
         
        ADCR = (ADCR&0x00FFFF00)|0x02|(1 << 24); // 设置通道2,并进行第一次转换
        while( (ADDR&0x80000000)==0 );                  // 等待转换结束
       ADCR = ADCR | (1 << 24);                             // 再次启运转换
        while( (ADDR&0x80000000)==0 );                   // 等待转换结束

        ADC_Data = ADDR;                                       // 读取ADC结果
        ADC_Data = (ADC_Data>>6) & 0x3FF;            // 提取AD转换值
        ADC_Data = ADC_Data * 3300;                      // 数值转换
        ADC_Data = ADC_Data / 1024;
        sprintf(str, "%4dmV    at    VIN2", ADC_Data);
        ISendStr(0, 0, 0x34, str);      
以上是两个通道模拟量电压值转换程序  请问一下问什么要进行两次数据转换?把第二次的转换屏蔽掉,程序运行 的实验结果没用明显的区别。

相关帖子

xinzhui1|  楼主 | 2018-4-4 10:46 | 显示全部楼层
两次转换 VIN1    A 0.500 0.798 0.999 1.500
    (单位:v )      D 0.489 0.792 0.995 1.501
一次转换  VIN1   A 0.500 0.799 0.999 1.500
                         D 0.493 0.792 0.995 1.501

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝