Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

master分支下,使用ADC例程读出来的数据过高 (GIT8266O-840) #1263

Open
Rita858 opened this issue Nov 22, 2023 · 0 comments
Open

Comments

@Rita858
Copy link

Rita858 commented Nov 22, 2023

分支:MASTER
COMMIT:3b15c065c5f37db69b4555fc23c78b8837c3554b
源码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/adc.h"
#include "esp_log.h"

static const char *TAG = "adc example";

static void adc_task()
{
    int x;
    uint16_t adc_data[100];
    uint16_t adc_value_average,adc_voltage_mv1;
    uint32_t  adc_values;

    while (1) {
        if (ESP_OK == adc_read(&adc_data[0])) {
            ESP_LOGI(TAG, "adc read: %d\r\n", adc_data[0]);
        }
        adc_values = 0;
        ESP_LOGI(TAG, "adc read fast:\r\n");

        if (ESP_OK == adc_read_fast(adc_data, 100)) {
            for (x = 0; x < 100; x++) {
                adc_values += adc_data[x];
               // printf("%d\n", adc_data[x]);
            }
            
        }
        adc_value_average = adc_values/100;
        adc_voltage_mv1 = (adc_value_average * 1000) / 1024;
        printf("\n------------------------------------------adc_voltage_mv1 = %dmV\n",adc_voltage_mv1);
        //printf("%d\n", adc_data[x]);

        vTaskDelay(1000 / portTICK_RATE_MS);
    }
}

void app_main()
{
    // 1. init adc
    adc_config_t adc_config;

    // Depend on menuconfig->Component config->PHY->vdd33_const value
    // When measuring system voltage(ADC_READ_VDD_MODE), vdd33_const must be set to 255.
    adc_config.mode = ADC_READ_TOUT_MODE;
    adc_config.clk_div = 8; // ADC sample collection clock = 80MHz/clk_div = 10MHz
    ESP_ERROR_CHECK(adc_init(&adc_config));

    // 2. Create a adc task to read adc value
    xTaskCreate(adc_task, "adc_task", 1024, NULL, 5, NULL);
}

结果:
万用表测出的电压值:
万用表读值
ESP8266计算出来的电压值:
ESP8266计算值

@github-actions github-actions bot changed the title master分支下,使用ADC例程读出来的数据过高 master分支下,使用ADC例程读出来的数据过高 (GIT8266O-840) Nov 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant