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

  • 相关阅读:
    SaltStack
    python模块相关
    python optparse命令解析模块
    python ConfigParser模块 配置文件解析
    pssh 批量管理执行
    rsync+inotify 实现实时同步
    [译]17-spring基于java代码的配置元数据
    [译]16-spring基于注解的配置元数据
    [译]15-spring 自动装配
    [译]14-spring 集合元素的注入
  • 原文地址:https://www.cnblogs.com/coding4/p/5604781.html
Copyright © 2011-2022 走看看