• 430学习笔记-内置ADC12


    前几个月在做项目时,由于使用的是别人提供的开发板,部分IO口不能直接使用,比如P60-P64都用在了其他地方。而这时我需要使用430内置的ADC12来进行AD转换,因此可以使用的P6口只用P65-P67。

    一开始,我在网上收集到的大多数例程都是使用P60口的,而一直找不到使用特定IO口进行AD转换的程序,TI官方给的例程也没有提到相关的内容。无奈之下只能看430的user guide,主要注意一些其他例程中没有提到的控制寄存器的使用方法。

    最终我整理出了一点头绪,在此与大家分享。

     1 void adcintial()
     2 {
     3   ADC12CTL0 &=~ENC;
     4    P6SEL |= BIT5;                            // P6.5 ADC option select
     5   ADC12CTL0 = SHT0_2 + ADC12ON + REFON + REF2_5V;             // Set sampling time, turn on ADC12
     6   ADC12CTL1 = CSTARTADD_5 + SHP;             // Use sampling timer
     7   ADC12MCTL5 = SREF_1 + INCH_5;
     8   ADC12IE = 0x20;                           // Enable interrupt
     9   ADC12CTL0 |= ENC;                         // Conversion enabled
    10 }

    以上一段代码是用在ADC12初始化的,其中与使用P60口做单通道单次转换不同的地方在第六行和第七行。

    第六行中CSTARTADD_5是转换的起始IO口,最后的数字5表示这是从P65开始转换。

    第七行中INCH_5是转换是需要用到的IO口,这里用的是P65口。

    1 #pragma vector=ADC12_VECTOR
    2 __interrupt void ADC12_ISR (void)
    3 {
    4      ad_data=ADC12MEM5;
    5 }

    然后这是ADC12中断部分的代码,ADC12MEM5是临时储存寄存器,这个寄存器和选择转换的通道一一对应。这里使用的是P65作为转换通道,因此转换的最后结果会存放在ADC12MEM5中。

    这是我第一篇博客,如有疏漏,希望大家多多指正!

  • 相关阅读:
    Django之 Choices参数、MVC和MTV模型、Ajax
    Django之聚合查询、分组查询、查询优化以及F、Q查询
    Django 之 模型层ORM操作
    Django关于视图层和模板层相关操作
    Django数据操作、ORM表设计、路由层
    Django三板斧,Django连接数据库
    前端--jQuery
    前端----BOM和DOM
    .zip.001 -- .zip.003解压缩
    HTTP Status Codes
  • 原文地址:https://www.cnblogs.com/guozhubeta/p/3348833.html
Copyright © 2020-2023  润新知