1.首先是ADC的基本知识

  模拟信号,连续的

  数字信号,离散的

  模拟信号,现实世界的很多东西都是连续的,所以使用模拟信号才能准确描述,但是模拟信号不方便控制。

  数字信号,计算机中的信号大都为数字的,数字信号方便精确控制。

  所以对于模拟信号的处理方式为:

  传感器从现实世界获得模拟信号,并将其转换成模拟电平,

  ADC输入模拟电平,转换为数字电平,

  程序处理数字电平,

  DAC将数字电平转换为模拟电平输出。

2. 对于ADC有几个重要特征

(1)量程,表示AD转化器的有效电压范围

(2)精度,如进度为10,表示ADC使用10bit表示数字信号。

(3)MSPS,每秒转换出的样本数量,MSPS与ADC的工作频率正相关, n * 工作频率 = MSPS

(4)通道数,表示ADC转换器同时能进行多少通道的AD转换

(5)模拟引脚,SOC通常由两种引脚,数字引脚与模拟引脚,数字引脚会以数字信号的方式处理电平,模拟引脚会以模拟信号的方式处理电平。

3.有了上面的基础知识,可以进行代码实践了

首先看原理图

这说明要使用的ADC通道号为0.

然后依照SoC寄存器描述和上面的ADC5中重要属性进行设置

void adc_init()
{
    rTSADCCON0     &= ~(<<);        // normal operation mode// 精度
    rTSADCCON0 |= ( << );    // 10bit resolution

    // 通道
    rADCMUX &= ~(); // channel 0

    // 频率
    rTSADCCON0 |= ( << );    // enable prescaler
    rTSADCCON0 &= ~() ;
    rTSADCCON0 |= ( << ); // 3.3MHZ
}

static void delay()
{
    , j =;
    ; i--)
        ; j--);
}

void adc_test()
{
    printf("adc_test\n");    

    adc_init();

    ) {

        rTSADCCON0 |= ( << );
        // 转换完成
         << )));
        // 输出
        printf("value : %d\n", rTSDATX0 & (0xFFF));
        delay();
    }

}

最新文章

  1. yum 操作复习
  2. jQuery Ajax 处理 HttpStatus
  3. Linux (Ubuntu) 下配置VPN服务器
  4. JSOI 2008 火星人prefix
  5. 安装rlwrap错误的问题解决方法
  6. Task &#39;&#39; not found in root project &#39;***&#39;.
  7. 谷歌(Chrome)安装Advanced REST Client插件
  8. jQuery name checked 模糊查找匹配ID
  9. 能让你成为更优秀程序员的10个C语言资源
  10. nginx 3.nginx+fastcgi
  11. 《并行程序设计导论》——MPI(Microsoft MPI)(6):并行排序算法
  12. 「Android」单例的五种写法
  13. [java,2017-05-16] java中清空StringBuffer的方法以及耗费时间比较
  14. v-bind指令动态绑定class和内联样式style
  15. Jenkins-Publish HTML reports
  16. ss server端配置
  17. win7系统自带分区工具,能分出逻辑分区
  18. gem install redis报错解决
  19. 为挂载到/home的RAID磁盘组扩容
  20. echarts 雷达图的个性化设置

热门文章

  1. 网站架构:消息队列 Java后端架构
  2. 赶集网mysql开发36条军规
  3. js之静态方法与实例方法
  4. open ssh 常用的东西
  5. PCB仿真软件与电磁场求解器的算法
  6. Office加载项对Excel进行读写操作
  7. 还是要精简开发呀,VS2015太大,VS2010不想装
  8. UIView的层次调整,及子view布局模式自动布局模式(停靠模式)
  9. ffmpeg处理RTMP流媒体的命令大全
  10. 问题 A: E2 驾驭const