This commit is contained in:
许晟昊 2023-12-27 08:14:55 +08:00
commit edb98ecff6
16 changed files with 1054 additions and 0 deletions

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
.pio
.vscode/.browse.c_cpp.db*
.vscode/c_cpp_properties.json
.vscode/launch.json
.vscode/ipch

10
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,10 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"platformio.platformio-ide"
],
"unwantedRecommendations": [
"ms-vscode.cpptools-extension-pack"
]
}

293
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,293 @@
{
"C_Cpp_Runner.cCompilerPath": "C:/Users/xushenghao/.platformio/packages/toolchain-xtensa-esp32/bin/xtensa-esp32-elf-gcc.exe",
"C_Cpp_Runner.cppCompilerPath": "C:/Users/xushenghao/.platformio/packages/toolchain-xtensa-esp32/bin/xtensa-esp32-elf-g++.exe",
"C_Cpp_Runner.debuggerPath": "C:/Users/xushenghao/.platformio/packages/toolchain-xtensa-esp32/bin/xtensa-esp32-elf-gdb.exe",
"C_Cpp_Runner.cStandard": "gnu99",
"C_Cpp_Runner.cppStandard": "gnu++11",
"C_Cpp_Runner.msvcBatchPath": "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Auxiliary/Build/vcvarsall.bat",
"C_Cpp_Runner.useMsvc": false,
"C_Cpp_Runner.warnings": [
"-Wall",
"-Wextra",
"-Wpedantic",
"-Wshadow",
"-Wformat=2",
"-Wcast-align",
"-Wconversion",
"-Wsign-conversion",
"-Wnull-dereference"
],
"C_Cpp_Runner.msvcWarnings": [
"/W4",
"/permissive-",
"/w14242",
"/w14287",
"/w14296",
"/w14311",
"/w14826",
"/w44062",
"/w44242",
"/w14905",
"/w14906",
"/w14263",
"/w44265",
"/w14928"
],
"C_Cpp_Runner.enableWarnings": true,
"C_Cpp_Runner.warningsAsError": false,
"C_Cpp_Runner.compilerArgs": [],
"C_Cpp_Runner.linkerArgs": [],
"C_Cpp_Runner.includePaths": [
"C:/Users/xushenghao/Documents/PlatformIO/Projects/TI-ADS1256/include",
"C:/Users/xushenghao/Documents/PlatformIO/Projects/TI-ADS1256/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/newlib/platform_include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions/freertos",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/port/xtensa/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc/esp32",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/port/esp32",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/port/esp32/private_include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/heap/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/log/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps/sntp",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/lwip/src/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include/arch",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/esp32/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/platform_port/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include/esp32",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/esp32",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_common/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/soc",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/public_compat",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/esp32/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/esp32/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_pm/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ringbuf/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/esp32/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/vfs/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_wifi/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_event/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_netif/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_eth/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcpip_adapter/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/esp32/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ipc/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_trace/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_timer/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/port/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/mbedtls/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/esp_crt_bundle/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_update/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spi_flash/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bootloader_support/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nvs_flash/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/pthread/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/xtensa",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/esp32",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include/port/xtensa",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/port/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/esp_supplicant/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ieee802154/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/console",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/asio/asio/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/port/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/osi/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/include/esp32/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/api/include/api",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/blufi/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_common/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_common/tinycrypt/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_core/storage",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/btc/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/common/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/client/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/mesh_models/server/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api/core/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api/models/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/esp_ble_mesh/api",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cbor/port/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/unity/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cmock/CMock/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/port/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/libcoap/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/port/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/nghttp2/lib/includes",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls/esp-tls-crypto",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_adc_cal/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hid/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcp_transport/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_client/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_server/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_https_ota/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_https_server/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/interface",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protobuf-c/protobuf-c",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/common",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/security",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/transports",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mdns/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_local_ctrl/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/sdmmc/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_serial_slave_link/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_websocket_client/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/expat/expat/lib",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/port/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wear_levelling/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/diskio",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/vfs",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freemodbus/freemodbus/common/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include/esp32",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/jsmn/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json/cJSON",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/libsodium/src/libsodium/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/port_include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mqtt/esp-mqtt/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/openssl/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/perfmon/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spiffs/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ulp/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wifi_provisioning/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/rmaker_common/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_diagnostics/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/rtc_store/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_insights/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser/upstream/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser/upstream",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_generator/upstream",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_schedule/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp_secure_cert_mgr/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rainmaker/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/gpio_button/button/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/qrcode/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ws2812_led",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_littlefs/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/tool",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/typedef",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/image",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/math",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/nn",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/layer",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/detect",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/model_zoo",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-sr/src/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-sr/esp-tts/esp_tts_chinese/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-sr/include/esp32",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/driver/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/conversions/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/dotprod/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/support/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/hann/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman_harris/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/blackman_nuttall/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/nuttall/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/windows/flat_top/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/iir/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/fir/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/add/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/sub/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/mul/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/addc/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/mulc/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/math/sqrt/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/matrix/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/fft/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/dct/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/conv/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/common/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/kalman/ekf/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espressif__esp-dsp/modules/kalman/ekf_imu13states/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fb_gfx/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/qio_qspi/include",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/cores/esp32",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/variants/uPesy_esp32_wroom_devkit",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/FS/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/I2S/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/Insights/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/LittleFS/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/RainMaker/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/SD/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/USB/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/Update/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src",
"C:/Users/xushenghao/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src",
""
],
"C_Cpp_Runner.includeSearch": [
"*",
"**/*"
],
"C_Cpp_Runner.excludeSearch": [
"**/build",
"**/build/**",
"**/.*",
"**/.*/**",
"**/.vscode",
"**/.vscode/**"
],
"C_Cpp_Runner.useAddressSanitizer": false,
"C_Cpp_Runner.useUndefinedSanitizer": false,
"C_Cpp_Runner.useLeakSanitizer": false,
"C_Cpp_Runner.showCompilationTime": false,
"C_Cpp_Runner.useLinkTimeOptimization": false,
"C_Cpp_Runner.msvcSecureNoWarnings": false,
"idf.portWin": "COM5",
"C_Cpp.errorSquiggles": "disabled",
"files.associations": {
"algorithm": "cpp"
}
}

39
include/README Normal file
View File

@ -0,0 +1,39 @@
This directory is intended for project header files.
A header file is a file containing C declarations and macro definitions
to be shared between several project source files. You request the use of a
header file in your project source file (C, C++, etc) located in `src` folder
by including it, with the C preprocessing directive `#include'.
```src/main.c
#include "header.h"
int main (void)
{
...
}
```
Including a header file produces the same results as copying the header file
into each source file that needs it. Such copying would be time-consuming
and error-prone. With a header file, the related declarations appear
in only one place. If they need to be changed, they can be changed in one
place, and programs that include the header file will automatically use the
new version when next recompiled. The header file eliminates the labor of
finding and changing all the copies as well as the risk that a failure to
find one copy will result in inconsistencies within a program.
In C, the usual convention is to give header files names that end with `.h'.
It is most portable to use only letters, digits, dashes, and underscores in
header file names, and at most one dot.
Read more about using header files in official GCC documentation:
* Include Syntax
* Include Operation
* Once-Only Headers
* Computed Includes
https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html

289
lib/ADS1256.cpp Normal file
View File

@ -0,0 +1,289 @@
/*
ADS1256.h - Arduino Library for communication with Texas Instrument ADS1256 ADC
Written by Adien Akhmad, August 2015
Modfified Jan 2019 by Axel Sepulveda for ATMEGA328
*/
#include "ADS1256.h"
#include "Arduino.h"
#include "SPI.h"
ADS1256::ADS1256(float clockspdMhz, float vref, bool useResetPin)
{
// Set DRDY as input
pinMode(pinDRDY, INPUT);
// Set CS as output
pinMode(pinCS, OUTPUT);
if (useResetPin)
{
// set RESETPIN as output
pinMode(pinRST, OUTPUT);
// pull RESETPIN high
pinMode(pinRST, HIGH);
}
// Voltage Reference
_VREF = vref;
// Default conversion factor
_conversionFactor = 1.0;
// Start SPI on a quarter of ADC clock speed
}
void ADS1256::writeRegister(unsigned char reg, unsigned char wdata)
{
CSON();
SPI.transfer(ADS1256_CMD_WREG | reg); // opcode1 Write registers starting from reg
SPI.transfer(0); // opcode2 Write 1+0 registers
SPI.transfer(wdata); // write wdata
delayMicroseconds(1);
CSOFF();
}
unsigned char ADS1256::readRegister(unsigned char reg)
{
unsigned char readValue;
CSON();
SPI.transfer(ADS1256_CMD_RREG | reg); // opcode1 read registers starting from reg
SPI.transfer(0); // opcode2 read 1+0 registers
delayMicroseconds(7); // t6 delay (4*tCLKIN 50*0.13 = 6.5 us)
readValue = SPI.transfer(0); // read registers
delayMicroseconds(1); // t11 delay (4*tCLKIN 4*0.13 = 0.52 us)
CSOFF();
return readValue;
}
void ADS1256::sendCommand(unsigned char reg)
{
CSON();
waitDRDY();
SPI.transfer(reg);
delayMicroseconds(1); // t11 delay (4*tCLKIN 4*0.13 = 0.52 us)
CSOFF();
}
void ADS1256::setConversionFactor(float val) { _conversionFactor = val; }
void ADS1256::readTest()
{
unsigned char _highByte, _midByte, _lowByte;
CSON();
SPI.transfer(ADS1256_CMD_RDATA);
delayMicroseconds(7); // t6 delay (4*tCLKIN 50*0.13 = 6.5 us)
_highByte = SPI.transfer(ADS1256_CMD_WAKEUP);
_midByte = SPI.transfer(ADS1256_CMD_WAKEUP);
_lowByte = SPI.transfer(ADS1256_CMD_WAKEUP);
CSOFF();
}
float ADS1256::readCurrentChannel()
{
CSON();
SPI.transfer(ADS1256_CMD_RDATA);
delayMicroseconds(7); // t6 delay (4*tCLKIN 50*0.13 = 6.5 us)
float adsCode = read_float32();
CSOFF();
return ((adsCode / 0x7FFFFF) * ((2 * _VREF) / (float)_pga)) *
_conversionFactor;
}
// Reads raw ADC data, as 32bit int
long ADS1256::readCurrentChannelRaw()
{
CSON();
SPI.transfer(ADS1256_CMD_RDATA);
delayMicroseconds(7); // t6 delay (4*tCLKIN 50*0.13 = 6.5 us)
long adsCode = read_int32();
CSOFF();
return adsCode;
}
// Call this ONLY after ADS1256_CMD_RDATA command
unsigned long ADS1256::read_uint24()
{
unsigned char _highByte, _midByte, _lowByte;
unsigned long value;
_highByte = SPI.transfer(0);
_midByte = SPI.transfer(0);
_lowByte = SPI.transfer(0);
// Combine all 3-bytes to 24-bit data using byte shifting.
value = ((long)_highByte << 16) + ((long)_midByte << 8) + ((long)_lowByte);
return value;
}
// Call this ONLY after ADS1256_CMD_RDATA command
// Convert the signed 24bit stored in an unsigned 32bit to a signed 32bit
long ADS1256::read_int32()
{
long value = read_uint24();
if (value & 0x00800000)
{ // if the 24 bit value is negative reflect it to 32bit
value |= 0xff000000;
}
return value;
}
// Call this ONLY after ADS1256_CMD_RDATA command
// Cast as a float
float ADS1256::read_float32()
{
long value = read_int32();
return (float)value;
}
// Channel switching for single ended mode. Negative input channel are
// automatically set to AINCOM
void ADS1256::setChannel(byte channel) { setChannel(channel, -1); }
// Channel Switching for differential mode. Use -1 to set input channel to
// AINCOM
void ADS1256::setChannel(byte AIN_P, byte AIN_N)
{
unsigned char MUX_CHANNEL;
unsigned char MUXP;
unsigned char MUXN;
switch (AIN_P)
{
case 0:
MUXP = ADS1256_MUXP_AIN0;
break;
case 1:
MUXP = ADS1256_MUXP_AIN1;
break;
case 2:
MUXP = ADS1256_MUXP_AIN2;
break;
case 3:
MUXP = ADS1256_MUXP_AIN3;
break;
case 4:
MUXP = ADS1256_MUXP_AIN4;
break;
case 5:
MUXP = ADS1256_MUXP_AIN5;
break;
case 6:
MUXP = ADS1256_MUXP_AIN6;
break;
case 7:
MUXP = ADS1256_MUXP_AIN7;
break;
default:
MUXP = ADS1256_MUXP_AINCOM;
}
switch (AIN_N)
{
case 0:
MUXN = ADS1256_MUXN_AIN0;
break;
case 1:
MUXN = ADS1256_MUXN_AIN1;
break;
case 2:
MUXN = ADS1256_MUXN_AIN2;
break;
case 3:
MUXN = ADS1256_MUXN_AIN3;
break;
case 4:
MUXN = ADS1256_MUXN_AIN4;
break;
case 5:
MUXN = ADS1256_MUXN_AIN5;
break;
case 6:
MUXN = ADS1256_MUXN_AIN6;
break;
case 7:
MUXN = ADS1256_MUXN_AIN7;
break;
default:
MUXN = ADS1256_MUXN_AINCOM;
}
MUX_CHANNEL = MUXP | MUXN;
CSON();
writeRegister(ADS1256_RADD_MUX, MUX_CHANNEL);
sendCommand(ADS1256_CMD_SYNC);
sendCommand(ADS1256_CMD_WAKEUP);
CSOFF();
}
/*
Init chip with set datarate and gain and perform self calibration
*/
void ADS1256::begin(unsigned char drate, unsigned char gain, bool buffenable)
{
_pga = 1 << gain;
sendCommand(ADS1256_CMD_SDATAC); // send out ADS1256_CMD_SDATAC command to stop continous reading mode.
writeRegister(ADS1256_RADD_DRATE, drate); // write data rate register
uint8_t bytemask = B00000111;
uint8_t adcon = readRegister(ADS1256_RADD_ADCON);
uint8_t byte2send = (adcon & ~bytemask) | gain;
writeRegister(ADS1256_RADD_ADCON, byte2send);
if (buffenable)
{
uint8_t status = readRegister(ADS1256_RADD_STATUS);
bitSet(status, 1);
writeRegister(ADS1256_RADD_STATUS, status);
}
sendCommand(ADS1256_CMD_SELFCAL); // perform self calibration
waitDRDY();
; // wait ADS1256 to settle after self calibration
}
/*
Init chip with default datarate and gain and perform self calibration
*/
void ADS1256::begin()
{
sendCommand(ADS1256_CMD_SDATAC); // send out ADS1256_CMD_SDATAC command to stop continous reading mode.
uint8_t status = readRegister(ADS1256_RADD_STATUS);
sendCommand(ADS1256_CMD_SELFCAL); // perform self calibration
waitDRDY(); // wait ADS1256 to settle after self calibration
}
/*
Reads and returns STATUS register
*/
uint8_t ADS1256::getStatus()
{
sendCommand(ADS1256_CMD_SDATAC); // send out ADS1256_CMD_SDATAC command to stop continous reading mode.
return readRegister(ADS1256_RADD_STATUS);
}
void ADS1256::CSON()
{
// PORT_CS &= ~(1 << PINDEX_CS);
digitalWrite(pinCS, LOW);
} // digitalWrite(_CS, LOW); }
void ADS1256::CSOFF()
{
digitalWrite(pinCS, HIGH);
// PORT_CS |= (1 << PINDEX_CS);
} // digitalWrite(_CS, HIGH); }
void ADS1256::waitDRDY()
{
// while (PIN_DRDY & (1 << PINDEX_DRDY));
while (digitalRead(pinDRDY))
;
}
boolean ADS1256::isDRDY()
{
return !digitalRead(pinDRDY);
}

156
lib/ADS1256.h Normal file
View File

@ -0,0 +1,156 @@
/*
ADS1256.h - Arduino Library for communication with Texas Instrument ADS1256 ADC
Written by Adien Akhmad, August 2015
Modifified Jan 2019 by Axel Sepulveda for ATMEGA328
*/
#ifndef ADS1256_h
#define ADS1256_h
#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__)
#define pinDRDY 9
#define pinRST 8
#define pinCS 10
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
#define pinDRDY 49
#define pinRST 48
#define pinCS 53
// Contributions are welcome
#elif defined(ARDUINO_ARCH_ESP8266)
//https://esp8266-shop.com/esp8266-guide/esp8266-nodemcu-pinout/
#define pinDRDY D0
#define pinRST D1
#define pinCS D8 // D8 Hw Cs in esp8266
#elif defined(ARDUINO_ARCH_ESP32)
// Contributions are welcome
//https://circuits4you.com/wp-content/uploads/2018/12/ESP32-Pinout.jpg
#define pinDRDY 17
#define pinRST 16
#define pinCS 5 //
#else
// Contributions are welcome
#warning "Oops! Pins for your board are not defined: pinDRDY, pinRST, pinCS"
#endif
// ADS1256 Register address
#define ADS1256_RADD_STATUS 0x00
#define ADS1256_RADD_MUX 0x01
#define ADS1256_RADD_ADCON 0x02
#define ADS1256_RADD_DRATE 0x03
#define ADS1256_RADD_IO 0x04
#define ADS1256_RADD_OFC0 0x05
#define ADS1256_RADD_OFC1 0x06
#define ADS1256_RADD_OFC2 0x07
#define ADS1256_RADD_FSC0 0x08
#define ADS1256_RADD_FSC1 0x09
#define ADS1256_RADD_FSC2 0x0A
// ADS1256 Command
#define ADS1256_CMD_WAKEUP 0x00
#define ADS1256_CMD_RDATA 0x01
#define ADS1256_CMD_RDATAC 0x03
#define ADS1256_CMD_SDATAC 0x0f
#define ADS1256_CMD_RREG 0x10
#define ADS1256_CMD_WREG 0x50
#define ADS1256_CMD_SELFCAL 0xF0
#define ADS1256_CMD_SELFOCAL 0xF1
#define ADS1256_CMD_SELFGCAL 0xF2
#define ADS1256_CMD_SYSOCAL 0xF3
#define ADS1256_CMD_SYSGCAL 0xF4
#define ADS1256_CMD_SYNC 0xFC
#define ADS1256_CMD_STANDBY 0xFD
#define ADS1256_CMD_RESET 0xFE
// define multiplexer codes
#define ADS1256_MUXP_AIN0 0x00
#define ADS1256_MUXP_AIN1 0x10
#define ADS1256_MUXP_AIN2 0x20
#define ADS1256_MUXP_AIN3 0x30
#define ADS1256_MUXP_AIN4 0x40
#define ADS1256_MUXP_AIN5 0x50
#define ADS1256_MUXP_AIN6 0x60
#define ADS1256_MUXP_AIN7 0x70
#define ADS1256_MUXP_AINCOM 0x80
#define ADS1256_MUXN_AIN0 0x00
#define ADS1256_MUXN_AIN1 0x01
#define ADS1256_MUXN_AIN2 0x02
#define ADS1256_MUXN_AIN3 0x03
#define ADS1256_MUXN_AIN4 0x04
#define ADS1256_MUXN_AIN5 0x05
#define ADS1256_MUXN_AIN6 0x06
#define ADS1256_MUXN_AIN7 0x07
#define ADS1256_MUXN_AINCOM 0x08
// define gain codes
#define ADS1256_GAIN_1 0x00
#define ADS1256_GAIN_2 0x01
#define ADS1256_GAIN_4 0x02
#define ADS1256_GAIN_8 0x03
#define ADS1256_GAIN_16 0x04
#define ADS1256_GAIN_32 0x05
#define ADS1256_GAIN_64 0x06
// define drate codes
/*
NOTE : Data Rate vary depending on crystal frequency. Data rates
listed below assumes the crystal frequency is 7.68Mhz
for other frequency consult the datasheet.
*/
#define ADS1256_DRATE_30000SPS 0xF0
#define ADS1256_DRATE_15000SPS 0xE0
#define ADS1256_DRATE_7500SPS 0xD0
#define ADS1256_DRATE_3750SPS 0xC0
#define ADS1256_DRATE_2000SPS 0xB0
#define ADS1256_DRATE_1000SPS 0xA1
#define ADS1256_DRATE_500SPS 0x92
#define ADS1256_DRATE_100SPS 0x82
#define ADS1256_DRATE_60SPS 0x72
#define ADS1256_DRATE_50SPS 0x63
#define ADS1256_DRATE_30SPS 0x53
#define ADS1256_DRATE_25SPS 0x43
#define ADS1256_DRATE_15SPS 0x33
#define ADS1256_DRATE_10SPS 0x23
#define ADS1256_DRATE_5SPS 0x13
#define ADS1256_DRATE_2_5SPS 0x03
#include "Arduino.h"
#include "SPI.h"
class ADS1256 {
public:
ADS1256(float clockspdMhz, float vref, bool useresetpin);
void writeRegister(unsigned char reg, unsigned char wdata);
unsigned char readRegister(unsigned char reg);
void sendCommand(unsigned char cmd);
float readCurrentChannel();
long readCurrentChannelRaw();
void setConversionFactor(float val);
void setChannel(byte channel);
void setChannel(byte AIP, byte AIN);
void begin(unsigned char drate, unsigned char gain, bool bufferenable);
void begin();
uint8_t getStatus();
void waitDRDY();
boolean isDRDY();
void setGain(uint8_t gain);
void readTest();
private:
void CSON();
void CSOFF();
unsigned long read_uint24();
long read_int32();
float read_float32();
byte _pga;
float _VREF;
float _conversionFactor;
};
#endif

46
lib/README Normal file
View File

@ -0,0 +1,46 @@
This directory is intended for project specific (private) libraries.
PlatformIO will compile them to static libraries and link into executable file.
The source code of each library should be placed in a an own separate directory
("lib/your_library_name/[here are source files]").
For example, see a structure of the following two libraries `Foo` and `Bar`:
|--lib
| |
| |--Bar
| | |--docs
| | |--examples
| | |--src
| | |- Bar.c
| | |- Bar.h
| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html
| |
| |--Foo
| | |- Foo.c
| | |- Foo.h
| |
| |- README --> THIS FILE
|
|- platformio.ini
|--src
|- main.c
and a contents of `src/main.c`:
```
#include <Foo.h>
#include <Bar.h>
int main (void)
{
...
}
```
PlatformIO Library Dependency Finder will find automatically dependent
libraries scanning project source files.
More information about PlatformIO Library Dependency Finder
- https://docs.platformio.org/page/librarymanager/ldf.html

18
platformio.ini Normal file
View File

@ -0,0 +1,18 @@
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:upesy_wroom]
platform = espressif32
board = upesy_wroom
framework = arduino
lib_extra_dirs = ~/Documents/Arduino/libraries
lib_deps =
./lib
monitor_speed = 115200

BIN
public/原理图.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 KiB

3
readme.md Normal file
View File

@ -0,0 +1,3 @@
# 接线
https://github.com/ADS1xxx-Series-ADC-Libraries/ADS1255-ADS1256/issues/11

41
src/adc1256.cpp Normal file
View File

@ -0,0 +1,41 @@
#include <HardwareSerial.h>
#include <ADS1256.h>
float clockMHZ = 7.68; // crystal frequency used on ADS1256
float vRef = 2.5; // voltage reference
// Construct and init ADS1256 object
ADS1256 adc(clockMHZ, vRef, false);
void adc1256_init(void)
{
SPI.begin();
sleep(0.1);
SPI.beginTransaction(
SPISettings(clockMHZ * 1000000 / 4, MSBFIRST, SPI_MODE1));
sleep(0.1);
adc.begin(ADS1256_DRATE_30000SPS, ADS1256_GAIN_1, false);
Serial.println("ADC Started");
// Set MUX Register to AINO-AIN1 so it start doing the ADC conversion
adc.setChannel(3);
}
float adc1256_read(void)
{
adc.waitDRDY();
adc.setChannel(3);
return adc.readCurrentChannel();
}
void adc1256_loop(void)
{
float rst;
adc.waitDRDY(); // wait for DRDY to go low before changing multiplexer register
adc.setChannel(3); // Set the MUX for differential between ch2 and 3
rst = adc.readCurrentChannel(); // DOUT arriving here are from MUX AIN0 and AIN1
Serial.print(rst, 6);
Serial.print("\n");
delay(1000);
}

8
src/adc1256.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef ADC1256_H
#define ADC1256_H
// Function declarations
void adc1256_init(void);
void adc1256_loop(void);
float adc1256_read(void);
#endif // ADC1256_H

13
src/board.cpp Normal file
View File

@ -0,0 +1,13 @@
#include <HardwareSerial.h>
#include "board.h"
#include "adc1256.h"
void board_init(void)
{
Serial.begin(115200); // The value does not matter if you use an MCU with native USB
while (!Serial)
{
; // Wait until the serial becomes available
}
Serial.println("ADS1256 - 2023-12-22");
adc1256_init();
}

7
src/board.h Normal file
View File

@ -0,0 +1,7 @@
#ifndef BOARD_H
#define BOARD_H
// Your code here
void board_init(void);
#endif // BOARD_H

115
src/main.cpp Normal file
View File

@ -0,0 +1,115 @@
#include <Arduino.h>
#include "board.h"
#include "adc1256.h"
volatile bool task_adc1256_flag = false;
String read_val = ""; // 用于储存串口接收的字符串
float array[5000]; // 存储数据
String fenge(String str, String fen, int index)
{
int weizhi;
String temps[str.length()];
int i = 0;
do
{
weizhi = str.indexOf(fen);
if (weizhi != -1)
{
temps[i] = str.substring(0, weizhi);
str = str.substring(weizhi + fen.length(), str.length());
i++;
}
else
{
if (str.length() > 0)
temps[i] = str;
}
} while (weizhi >= 0);
if (index > i)
return "-1";
return temps[index];
}
void task_ads(void *pt)
{
float *array; // 存储数据
uint16_t i = 0, j = 0;
float temp = 0;
while (1)
{
while (task_adc1256_flag)
{
Serial.println("Waiting for processing ...");
String part01 = fenge(read_val, ",", 0);
String part02 = fenge(read_val, ",", 1);
read_val = "";
int count = part01.toInt();
int delay = part02.toInt();
array = static_cast<float *>(malloc(sizeof(float) * count));
memset(array, 0, sizeof(array));
for (i = 0; i < count; i++)
{
array[i] = adc1256_read();
vTaskDelay(delay);
}
// 对array[i]从小到大排序后取中间一个值
for (i = 0; i < count - 1; i++)
{
for (j = 0; j < count - 1 - i; j++)
{
if (array[j] > array[j + 1])
{
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
Serial.println(array[count / 2], 8);
task_adc1256_flag = false;
free(array);
}
vTaskDelay(100); // 延时100ms
}
}
void task_serial(void *pt)
{
for (;;)
{
while (Serial.available() > 0)
{
read_val = read_val + char(Serial.read()); // 接收串口数据
vTaskDelay(20);
}
if (read_val.length() > 0)
{
task_adc1256_flag = true;
}
vTaskDelay(100); // 延时100ms
}
}
void setup()
{
// put your setup code here, to run once:
board_init();
xTaskCreate(task_serial, "task_serial", 1024 * 4, NULL, 1, NULL);
xTaskCreate(task_ads, "task_ads", 1024 * 4, NULL, 1, NULL);
}
void loop()
{
// put your main code here, to run repeatedly:
vTaskDelay(1000); // 延时100ms
}

11
test/README Normal file
View File

@ -0,0 +1,11 @@
This directory is intended for PlatformIO Test Runner and project tests.
Unit Testing is a software testing method by which individual units of
source code, sets of one or more MCU program modules together with associated
control data, usage procedures, and operating procedures, are tested to
determine whether they are fit for use. Unit testing finds problems early
in the development cycle.
More information about PlatformIO Unit Testing:
- https://docs.platformio.org/en/latest/advanced/unit-testing/index.html