• [转]MSP430单片机ADC模数转换操作


    //******************************************************************************
    // D13x 实例4 - 12位AD转换
    //
    // 描述:系统处于休眠状态LPM0
    // 如果AD采样值大于等于7FF小灯点亮;如果小于7FF小灯熄灭。
    // ACLK= n/a, MCLK= SMCLK= default DCO ~ 800k
    //
    // MSP430F13x
    // -------------------
    // /|\| XIN|-
    // | | | 32kHz
    // --|RST XOUT|-
    // | |
    // Vin-->|P6.0/A0 P1.5|--> LED
    //
    // 时间:2007年10月
    // www.goodmcu.cn
    //
    // 硬件电路:MSP430F135核心实验板-I型
    // 硬件连接:
    //
    // 调试器:MSP430FET全系列JTAG仿真器
    // 调试软件: IAR Embedded Workbench Version: 3.41A 编译
    //******************************************************************************

    #include <msp430x13x.h>

    void main(void)
    {
    WDTCTL = WDTPW + WDTHOLD; // Stop WDT
    ADC12CTL0 = SHT0_2 + ADC12ON; // 设置采样时间, 打开 ADC12
    ADC12CTL1 = SHP; // 打开采样定时器
    ADC12IE = 0x01; // AD0采样结束允许中断
    ADC12CTL0 |= ENC; // AD转换使能
    P6SEL |= 0x01; // 选择 P6.0 功能为 ADC
    P1DIR |= 0x20; // P1.5 输出口

    for (;;)
    {
    ADC12CTL0 |= ADC12SC; // 转换打开
    _BIS_SR(CPUOFF + GIE); // LPM0, ADC12_ISR will force exit
    }
    }

    // ADC12 中断处理程序
    #pragma vector=ADC12_VECTOR //Timer_A中断函数
    __interrupt void ADC()
    {
    if (ADC12MEM0 < 0x7FF)
    P1OUT &= ~0x20; // 小于7FF 关闭 P1.5 LED 灯
    else
    P1OUT |= 0x20; // 点亮 P1.5 LED 灯
    _BIC_SR_IRQ(CPUOFF); // Clear CPUOFF bit from 0(SR)
    }

  • 相关阅读:
    Apache的443端口被占用解决方法
    关于变量初始化问题
    浏览无法加载控件
    关于网络数据传输
    java 对象是在什么时候创建的?
    HTML HTTP
    2020 年计划
    Docker 学习
    [腾讯 TMQ] 接口测试用例设计
    pytest + request
  • 原文地址:https://www.cnblogs.com/sky1991/p/2645526.html
Copyright © 2020-2023  润新知