• 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

  • 相关阅读:
    2019年8月下旬
    2019年8月上旬
    2019年7月 vue专题
    2019年7月上
    mysql安装 demo [linux centos7] [5.7.26]
    记一个日志冲突——管中窥豹[java混乱的日志体系]
    Mybatis-Generator demo
    dubbo doc入门文档
    springBoot+mysql+mybatis demo [基本配置] [遇到的问题]
    nginx安装demo
  • 原文地址:https://www.cnblogs.com/coding4/p/5604781.html
Copyright © 2020-2023  润新知