zoukankan      html  css  js  c++  java
  • ADC第一次读取

    在ADCCON中,最后0位和1位互斥。
    如果1位选1的话,0位的值无效。
    如果1位选0的话,0位的值才有效。
    当1位选1的话:这是应用层的程序
    #if ADSTART==0
    void niuniu(void)
    {
    uart_init();
    adc_init();
    beeper_init();

    adc_read();

    while(1)
    {
    itoa(adc_read());
    if(adc_read() > 2500)
    {
    beeper_on();
    }
    else
    {
    beeper_off();
    }
    delay(10000);
    }
    }
    #endif
    这里注意while循环的上面必须有adc_read();如果去掉这个adc_read();情况如下:
    加一个
    uart_init();
    adc_init();
    beeper_init();
    puts(" loudan");
    //adc_read();
    while(1)
    {
    itoa(adc_read());
    if(adc_read() > 2500)
    {
    beeper_on();
    }
    else
    {
    beeper_off();
    }
    delay(10000);
    }
    测试结果如下:
    loudan0000
    3069
    3069
    3069
    3069
    3069
    3069
    3069
    3069
    3069
    ?
    loudan0000(这里是我又重启了一次开发版)
    3069
    3069
    3069
    3069
    3069
    3069
    3069
    3069
    3069
    3069
    3069
    3069

    loudan0000
    3069
    3069
    *******************************************
    如果联系后边的当客户端强求发送一个,ADC转化的数据时,必须每一次都是正确的,但是去掉adc_read();的情况下,第一次的数据就是错误的。
    这里是驱动里边的情况:
    void adc_init(void)
    {
    #if ADSTART==0
    ADC.ADCCON = 0x1<<1|0xff<<6|0x1<<14;
    #elif ADSTART==1
    ADC.ADCCON = 0xff<<6|0x1<<14;
    #endif
    }

    #if ADSTART==1
    void adc_enable(void)
    {
    ADC.ADCCON |= 0x1;
    }
    #endif

    int adc_read(void)
    {
    int result;

    #if ADSTART==0(这是我们分析的最开始的ADCCON,如果1位选1的话,0位的值无效。如果result = ADC.ADCDAT0&0x3ff;放到下边则程序无法运行)
    result = ADC.ADCDAT0&0x3ff;

    while(!(ADC.ADCCON&(0x1<<15)))
    {
    }
    #elif ADSTART==1(这是我们分析的最开始的ADCCON,如果1位选0的话,0位的值有效。这两个while相反,这两个无论哪一个while和result换位置都是不能运行程序的。)
    while(!(ADC.ADCCON&(0x1<<15)))
    {
    }

    result = ADC.ADCDAT0&0x3ff;
    #endif

    return 3300/0x3ff*result;
    }
    #endif

  • 相关阅读:
    html基础笔记
    webpack实用配置总结
    Vue生命周期
    Vue跨域解决方法
    日历
    绝对地址和相对地址
    HTML+CSS要点
    (利用DOM)在新打开的页面点击关闭当前浏览器窗口
    前端面试
    前端工程师的知识体系
  • 原文地址:https://www.cnblogs.com/coding4/p/5604781.html
Copyright © 2011-2022 走看看