zoukankan      html  css  js  c++  java
  • 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中。

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

  • 相关阅读:
    《深入理解Android内核设计思想》已陆续在全国各大书店及网上书店上市,感谢大家一直以来的支持~~
    PKUSC2019 D2T2
    Java面试(二)
    Java面试(一)
    MFC学习(七) 单文档程序
    MFC学习(六)计算器
    C++ 面试题(转载)
    MFC学习(五)常见面试题
    MFC学习(四) 消息机制
    MFC学习(三)程序入口和执行流程
  • 原文地址:https://www.cnblogs.com/guozhubeta/p/3348833.html
Copyright © 2011-2022 走看看