Skip to content
2 changes: 1 addition & 1 deletion components/adc/include/adc_types.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ struct AdcConfig {
adc_unit_t unit; /**< Which adc unit is this channel associated with, e.g. ADC_UNIT_1. */
adc_channel_t channel; /**< The actual channel, e.g. ADC_CHANNEL_2. */
adc_atten_t
attenuation; /**< The attenuation associated with this channel, e.g. ADC_ATTEN_DB_11. */
attenuation; /**< The attenuation associated with this channel, e.g. ADC_ATTEN_DB_12. */
};

static bool operator!=(const AdcConfig &lhs, const AdcConfig &rhs) {
Expand Down
2 changes: 1 addition & 1 deletion components/bldc_driver/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
idf_component_register(
INCLUDE_DIRS "include"
SRC_DIRS "src"
REQUIRES base_component driver)
REQUIRES base_component driver esp_driver_gpio esp_driver_mcpwm)
8 changes: 7 additions & 1 deletion components/bldc_driver/include/bldc_driver.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

#include "driver/gpio.h"
#include "driver/mcpwm_prelude.h"
#include "esp_idf_version.h"
#include "soc/soc_caps.h"

#include "base_component.hpp"

Expand Down Expand Up @@ -260,10 +262,12 @@ class BldcDriver : public BaseComponent {
static int GROUP_ID;

void init(const Config &config) {
#if defined(SOC_MCPWM_GROUPS)
if (GROUP_ID >= SOC_MCPWM_GROUPS) {
GROUP_ID = 0;
logger_.error("Exceeded max number of MCPWM groups ({}), resetting to 0", SOC_MCPWM_GROUPS);
}
#endif
configure_enable_gpio();
configure_timer();
configure_operators();
Expand Down Expand Up @@ -324,8 +328,10 @@ class BldcDriver : public BaseComponent {
gpio_fault_config.gpio_num = (gpio_num_t)gpio_fault_;
gpio_fault_config.group_id = GROUP_ID;
gpio_fault_config.flags.active_level = 1; // high level means fault, refer to TMC6300 datasheet
gpio_fault_config.flags.pull_down = true; // internally pull down
#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(6, 0, 0)
gpio_fault_config.flags.pull_down = true; // internally pull down
gpio_fault_config.flags.io_loop_back = true; // enable loop back to GPIO input
#endif
ESP_ERROR_CHECK(mcpwm_new_gpio_fault(&gpio_fault_config, &fault_handle_));

logger_.info("Set brake mode on the fault event");
Expand Down
12 changes: 11 additions & 1 deletion components/cli/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
include($ENV{IDF_PATH}/tools/cmake/version.cmake)

set(cli_requires driver esp_driver_uart esp_driver_usb_serial_jtag vfs logger)

if(IDF_VERSION_MAJOR GREATER_EQUAL 6)
list(APPEND cli_requires esp_stdio esp_usb_cdc_rom_console)
else()
list(APPEND cli_requires esp_vfs_console)
endif()

idf_component_register(
INCLUDE_DIRS "include" "detail/cli/include"
SRC_DIRS "src"
REQUIRES driver esp_driver_uart esp_driver_usb_serial_jtag vfs esp_vfs_console logger)
REQUIRES ${cli_requires})
4 changes: 4 additions & 0 deletions components/cli/include/cli.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,11 @@

#include "esp_vfs_cdcacm.h"
#include "esp_vfs_dev.h"

#include "esp_idf_version.h"
#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(6, 0, 0)
#include "esp_vfs_usb_serial_jtag.h"
#endif

#include "line_input.hpp"

Expand Down
2 changes: 1 addition & 1 deletion components/encoder/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
idf_component_register(
INCLUDE_DIRS "include"
REQUIRES base_component driver)
REQUIRES base_component driver esp_driver_pcnt)
2 changes: 1 addition & 1 deletion components/esp-box/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
idf_component_register(
INCLUDE_DIRS "include"
SRC_DIRS "src"
REQUIRES driver base_component codec display display_drivers i2c input_drivers interrupt gt911 task tt21100 icm42607
REQUIRES driver esp_driver_i2s base_component codec display display_drivers i2c input_drivers interrupt gt911 task tt21100 icm42607
REQUIRED_IDF_TARGETS "esp32s3"
)
2 changes: 1 addition & 1 deletion components/esp-dsp
Submodule esp-dsp updated 95 files
+4 −0 .codespellrc
+97 −67 .gitlab-ci.yml
+45 −0 .gitlab/ci/pre_commit.yml
+6 −0 .pre-commit-config.yaml
+14 −2 CHANGELOG.md
+6 −0 CMakeLists.txt
+2 −2 applications/azure_board_apps/apps/kalman_filter/main/kalman_filter_demo.cpp
+1 −1 applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.cpp
+2 −2 applications/azure_board_apps/graphics/3d_matrix/3d_matrix_src/graphics_support.h
+1 −1 applications/azure_board_apps/graphics/img_to_3d_matrix/ImgTo3D.py
+2 −2 applications/m5stack_core_s3/apps/3d_graphics/main/init_display.c
+2 −2 applications/m5stack_core_s3/apps/kalman_filter/main/3d_kalman_demo.cpp
+4 −4 build_all.sh
+1 −1 docs/build_bm_table.py
+6 −0 docs/conf_common.py
+1 −1 docs/en/esp-dsp-benchmarks.rst
+1 −1 docs/en/esp-dsp-examples.rst
+1 −1 docs/esp-dsp-benchmarks_template.rst
+1 −1 docs/requirements.txt
+1 −1 examples/conv2d/README.md
+1 −1 examples/conv2d/main/conv2d_main.c
+2 −2 examples/iir/main/dsps_iir_main.c
+2 −2 examples/kalman/main/ekf_imu13states_main.cpp
+1 −1 examples/matrix/README.md
+1 −1 examples/matrix/main/dspm_matrix_main.cpp
+1 −0 modules/common/include/esp_dsp.h
+1 −1 modules/common/include_sim/esp_attr.h
+1 −1 modules/common/include_sim/esp_err.h
+1 −1 modules/common/include_sim/esp_log.h
+3 −3 modules/dotprod/test/test_dotprod_s16.c
+1 −1 modules/dotprod/test/test_dotprode_f32.c
+15 −15 modules/fft/fixed/dsps_fft2r_sc16_ae32.S
+1 −1 modules/fft/float/dsps_fft2r_fc32_ae32_.S
+1 −1 modules/fft/float/dsps_fft2r_fc32_aes3_.S
+1 −1 modules/fft/float/dsps_fft4r_fc32_ae32_.S
+1 −1 modules/fft/float/dsps_fft4r_fc32_aes3_.S
+1 −1 modules/fft/include/dsps_fft4r.h
+1 −1 modules/fft/test/test_dsps_fft2r_fc32_ae32.c
+1 −1 modules/fft/test/test_dsps_fft2r_fc32_ansi.c
+3 −3 modules/fir/fixed/dsps_fird_init_s16.c
+64 −0 modules/fir/fixed/dsps_firmr_init_s16.c
+54 −0 modules/fir/fixed/dsps_firmr_s16_ansi.c
+89 −66 modules/fir/float/dsps_fird_f32_aes3.S
+1 −1 modules/fir/float/dsps_fird_f32_arp4.S
+41 −0 modules/fir/float/dsps_firmr_f32_ansi.c
+60 −0 modules/fir/float/dsps_firmr_init_f32.c
+120 −13 modules/fir/include/dsps_fir.h
+133 −0 modules/fir/include/dsps_resampler.h
+78 −0 modules/fir/resampler/dsps_resampler_mr.c
+72 −0 modules/fir/resampler/dsps_resampler_ph.c
+1 −1 modules/fir/test/test_dsps_fird_s16_ae32.c
+105 −0 modules/fir/test/test_dsps_firmr_f32_ansi.c
+288 −0 modules/fir/test/test_dsps_firmr_s16_ansi.c
+80 −0 modules/fir/test/test_dsps_resampler_mr_f32.c
+103 −0 modules/fir/test/test_dsps_resampler_ph_f32.c
+6 −6 modules/kalman/ekf/common/ekf.cpp
+4 −1 modules/kalman/ekf/include/ekf.h
+1 −1 modules/kalman/ekf_imu13states/docs/README.md
+1 −1 modules/kalman/ekf_imu13states/ekf_imu13states.cpp
+2 −2 modules/kalman/ekf_imu13states/include/ekf_imu13states.h
+1 −1 modules/math/mulc/include/dsps_mulc.h
+1 −1 modules/matrix/add/test/test_dspm_add_f32_ae32.cpp
+1 −1 modules/matrix/add/test/test_dspm_add_f32_ansi.cpp
+1 −1 modules/matrix/addc/test/test_dspm_addc_f32_ansi.cpp
+3 −1 modules/matrix/include/mat.h
+1 −1 modules/matrix/mat/mat.cpp
+2 −2 modules/matrix/mul/fixed/dspm_mult_s16_ae32.S
+1 −1 modules/matrix/mul/float/dspm_mult_ex_f32_ae32.S
+2 −2 modules/matrix/mul/float/dspm_mult_ex_f32_aes3.S
+1 −1 modules/matrix/mul/float/dspm_mult_f32_ae32.S
+1 −1 modules/matrix/mul/float/dspm_mult_f32_aes3.S
+1 −1 modules/matrix/mul/float/dspm_mult_f32_arp4.S
+1 −0 modules/matrix/mul/include/dspm_mult.h
+3 −3 modules/matrix/mul/test/test_mat_f32.cpp
+4 −4 modules/matrix/mul/test/test_mat_sub_f32.cpp
+2 −2 modules/matrix/mul/test/test_mmult_3x3xx_f32_ae32.c
+1 −1 modules/matrix/mul/test/test_mmult_4x4xx_f32_ae32.c
+2 −2 modules/matrix/mul/test/test_mmult_ex_f32_aexx.cpp
+1 −1 modules/matrix/mul/test/test_mmult_ex_f32_ansi.cpp
+1 −1 modules/matrix/mul/test/test_mmult_f32_ae32.c
+1 −1 modules/matrix/mul/test/test_mmult_f32_ansi.c
+1 −1 modules/matrix/mul/test/test_mmult_s16_ansi.c
+1 −1 modules/matrix/mulc/test/test_dspm_mulc_f32_ansi.cpp
+1 −1 modules/matrix/sub/test/test_dspm_sub_f32_ansi.cpp
+4 −4 modules/support/cplx_gen/dsps_cplx_gen.S
+2 −2 modules/support/cplx_gen/dsps_cplx_gen_init.c
+2 −2 modules/support/include/dsps_cplx_gen.h
+1 −1 modules/support/include/dsps_view.h
+5 −5 modules/support/mem/test/test_dsps_memcpy_memset.c
+1 −1 test/test_dsp.c
+1 −1 test_app/CMakeLists.txt
+1 −0 test_app/main/test_app_main.c
+1 −0 test_app/pytest.ini
+1 −2 test_app/pytest_esp-dsp_unity_tests.py
+5 −2 test_app/sdkconfig.defaults
2 changes: 1 addition & 1 deletion components/esp32-timer-cam/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
idf_component_register(
INCLUDE_DIRS "include"
SRC_DIRS "src"
REQUIRES driver adc base_component bm8563 i2c interrupt led math task
REQUIRES driver esp_driver_i2s esp_driver_spi adc base_component bm8563 i2c interrupt led math task
REQUIRED_IDF_TARGETS "esp32"
)
2 changes: 1 addition & 1 deletion components/interrupt/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
idf_component_register(
INCLUDE_DIRS "include"
SRC_DIRS "src"
REQUIRES driver base_component task)
REQUIRES driver esp_driver_gpio base_component task)
2 changes: 1 addition & 1 deletion components/led/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
idf_component_register(
INCLUDE_DIRS "include"
SRC_DIRS "src"
REQUIRES base_component driver task)
REQUIRES base_component driver esp_driver_ledc task)
2 changes: 1 addition & 1 deletion components/m5stack-tab5/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
idf_component_register(
INCLUDE_DIRS "include"
SRC_DIRS "src"
REQUIRES driver esp_lcd fatfs base_component bmi270 codec display display_drivers gt911 i2c ina226 input_drivers interrupt pi4ioe5v rx8130ce task
REQUIRES driver esp_driver_i2s esp_driver_sdmmc esp_driver_spi esp_lcd fatfs base_component bmi270 codec display display_drivers gt911 i2c ina226 input_drivers interrupt pi4ioe5v rx8130ce task
REQUIRED_IDF_TARGETS "esp32p4"
)
17 changes: 16 additions & 1 deletion components/m5stack-tab5/src/video.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include <algorithm>
#include <cstdlib>

#include <esp_idf_version.h>
#include <esp_lcd_mipi_dsi.h>
#include <esp_lcd_panel_io.h>
#include <esp_lcd_panel_ops.h>
Expand Down Expand Up @@ -95,7 +96,7 @@ bool M5StackTab5::initialize_lcd() {
.num_data_lanes = 2,
.phy_clk_src = MIPI_DSI_PHY_CLK_SRC_DEFAULT,
.lane_bit_rate_mbps =
(uint32_t)(detected_controller == DisplayController::ILI9881 ? 730 : 965),
static_cast<float>(detected_controller == DisplayController::ILI9881 ? 730 : 965),
};
Comment thread
finger563 marked this conversation as resolved.
ret = esp_lcd_new_dsi_bus(&bus_config, &lcd_handles_.mipi_dsi_bus);
if (ret != ESP_OK) {
Expand Down Expand Up @@ -135,7 +136,12 @@ bool M5StackTab5::initialize_lcd() {
dpi_cfg.virtual_channel = 0;
dpi_cfg.dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT;
dpi_cfg.dpi_clock_freq_mhz = 60;
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(6, 0, 0)
dpi_cfg.in_color_format = LCD_COLOR_FMT_RGB565;
dpi_cfg.out_color_format = LCD_COLOR_FMT_RGB565;
#else
dpi_cfg.pixel_format = LCD_COLOR_PIXEL_FORMAT_RGB565;
#endif
dpi_cfg.num_fbs = 1;
dpi_cfg.video_timing.h_size = display_width_;
dpi_cfg.video_timing.v_size = display_height_;
Expand All @@ -145,13 +151,20 @@ bool M5StackTab5::initialize_lcd() {
dpi_cfg.video_timing.vsync_back_porch = 20;
dpi_cfg.video_timing.vsync_pulse_width = 4;
dpi_cfg.video_timing.vsync_front_porch = 20;
#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(6, 0, 0)
dpi_cfg.flags.use_dma2d = true;
#endif

} else if (detected_controller == DisplayController::ST7123 && lcd_handles_.panel == nullptr) {
dpi_cfg.virtual_channel = 0;
dpi_cfg.dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT;
dpi_cfg.dpi_clock_freq_mhz = 100;
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(6, 0, 0)
dpi_cfg.in_color_format = LCD_COLOR_FMT_RGB565;
dpi_cfg.out_color_format = LCD_COLOR_FMT_RGB565;
#else
dpi_cfg.pixel_format = LCD_COLOR_PIXEL_FORMAT_RGB565;
#endif
dpi_cfg.num_fbs = 1;
dpi_cfg.video_timing.h_size = display_width_;
dpi_cfg.video_timing.v_size = display_height_;
Expand All @@ -161,7 +174,9 @@ bool M5StackTab5::initialize_lcd() {
dpi_cfg.video_timing.vsync_back_porch = 8;
dpi_cfg.video_timing.vsync_pulse_width = 2;
dpi_cfg.video_timing.vsync_front_porch = 220;
#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(6, 0, 0)
dpi_cfg.flags.use_dma2d = true;
#endif
}

if (lcd_handles_.panel == nullptr) {
Expand Down
15 changes: 13 additions & 2 deletions components/monitor/src/heap_monitor.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
#include "heap_monitor.hpp"

#include "esp_idf_version.h"

// MALLOC_CAP_TCM was renamed to MALLOC_CAP_SPM in ESP-IDF v6.0
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(6, 0, 0)
#define ESPP_MALLOC_CAP_TCM MALLOC_CAP_SPM
#define ESPP_MALLOC_CAP_TCM_NAME "SPM "
#else
#define ESPP_MALLOC_CAP_TCM MALLOC_CAP_TCM
#define ESPP_MALLOC_CAP_TCM_NAME "TCM "
#endif

using namespace espp;

std::string HeapMonitor::get_region_name(int heap_flags) {
Expand All @@ -25,8 +36,8 @@ std::string HeapMonitor::get_region_name(int heap_flags) {
if (heap_flags & MALLOC_CAP_RTCRAM) {
name += "RTCRAM ";
}
if (heap_flags & MALLOC_CAP_TCM) {
name += "TCM ";
if (heap_flags & ESPP_MALLOC_CAP_TCM) {
name += ESPP_MALLOC_CAP_TCM_NAME;
}
if (heap_flags & MALLOC_CAP_DMA_DESC_AHB) {
name += "DMA AHB ";
Expand Down
2 changes: 1 addition & 1 deletion components/motorgo-mini/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
idf_component_register(
INCLUDE_DIRS "include"
SRC_DIRS "src"
REQUIRES base_component interrupt filters led math mt6701 pid task bldc_driver bldc_motor i2c adc
REQUIRES base_component interrupt filters led math mt6701 pid task bldc_driver bldc_motor i2c adc esp_driver_spi
REQUIRED_IDF_TARGETS "esp32s3"
)
15 changes: 5 additions & 10 deletions components/motorgo-mini/src/motorgo-mini.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -208,16 +208,11 @@ float MotorGoMini::breathe(float breathing_period, uint64_t start_us, bool resta

bool IRAM_ATTR MotorGoMini::read_encoder(const auto &encoder_handle, uint8_t *data, size_t size) {
static constexpr uint8_t SPIBUS_READ = 0x80;
spi_transaction_t t = {
.flags = 0,
.cmd = 0,
.addr = SPIBUS_READ,
.length = size * 8,
.rxlength = size * 8,
.user = nullptr,
.tx_buffer = nullptr,
.rx_buffer = data,
};
spi_transaction_t t{};
t.addr = SPIBUS_READ;
t.length = size * 8;
t.rxlength = size * 8;
t.rx_buffer = data;
if (size <= 4) {
t.flags = SPI_TRANS_USE_RXDATA;
t.rx_buffer = nullptr;
Expand Down
2 changes: 1 addition & 1 deletion components/mt6701/example/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ set(EXTRA_COMPONENT_DIRS

set(
COMPONENTS
"main esptool_py driver filters i2c task mt6701"
"main esptool_py driver esp_driver_spi filters i2c task mt6701"
CACHE STRING
"List of components to include"
)
Expand Down
2 changes: 1 addition & 1 deletion components/neopixel/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
idf_component_register(
INCLUDE_DIRS "include"
SRC_DIRS "src"
REQUIRES base_component color rmt
REQUIRES base_component color esp_driver_gpio rmt
)
2 changes: 1 addition & 1 deletion components/remote_debug/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
idf_component_register(
INCLUDE_DIRS "include"
SRC_DIRS "src"
REQUIRES esp_http_server driver adc base_component file_system timer
REQUIRES esp_http_server driver esp_driver_gpio adc base_component file_system timer
)
2 changes: 1 addition & 1 deletion components/rmt/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
idf_component_register(
INCLUDE_DIRS "include"
REQUIRES base_component driver
REQUIRES base_component driver esp_driver_rmt
)
2 changes: 1 addition & 1 deletion components/socket/src/socket.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ bool Socket::set_receive_timeout(const std::chrono::duration<float> &timeout) {
return true;
}
float intpart;
float fractpart = modf(seconds, &intpart);
float fractpart = modff(seconds, &intpart);
const time_t response_timeout_s = (int)intpart;
const time_t response_timeout_us = (int)(fractpart * 1E6);
//// Alternatively we could do this:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -867,8 +867,6 @@ bool Root::State_2::ChildState3::Grand2::handleEvent(GeneratedEventBase *event)
// take care of all event types that this branch will not handle -
// for more consistent run-time performnace
switch (event->get_type()) {
handled = true;
break;
default:
handled = false;
break;
Expand Down Expand Up @@ -1631,8 +1629,6 @@ bool Root::State3::ChildState::handleEvent(GeneratedEventBase *event) {
// take care of all event types that this branch will not handle -
// for more consistent run-time performnace
switch (event->get_type()) {
handled = true;
break;
default:
handled = false;
break;
Expand Down
2 changes: 1 addition & 1 deletion components/t-deck/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
idf_component_register(
INCLUDE_DIRS "include"
SRC_DIRS "src"
REQUIRES driver base_component display display_drivers fatfs i2c input_drivers interrupt gt911 task t_keyboard
REQUIRES driver esp_driver_i2s esp_driver_spi base_component display display_drivers fatfs i2c input_drivers interrupt gt911 task t_keyboard
REQUIRED_IDF_TARGETS "esp32s3"
)
2 changes: 1 addition & 1 deletion components/thermistor/example/main/thermistor_example.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ extern "C" void app_main(void) {
// create a continuous ADC which will sample and filter the thermistor
// voltage on ADC1 channel 7
std::vector<espp::AdcConfig> channels{
{.unit = ADC_UNIT_1, .channel = ADC_CHANNEL_7, .attenuation = ADC_ATTEN_DB_11}};
{.unit = ADC_UNIT_1, .channel = ADC_CHANNEL_7, .attenuation = ADC_ATTEN_DB_12}};
// this initailizes the DMA and filter task for the continuous adc
espp::ContinuousAdc adc(
{.sample_rate_hz = 20 * 1000,
Expand Down
17 changes: 9 additions & 8 deletions components/ws-s3-touch/example/main/ws_s3_touch_example.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -115,14 +115,15 @@ extern "C" void app_main(void) {
return;
}
// now set the time on the RTC
std::tm timeinfo{
.tm_sec = 0,
.tm_min = 42,
.tm_hour = 13,
.tm_mday = 24,
.tm_mon = 10, // 0-11, so 10 is November
.tm_year = 123 // years since 1900, so 100 is 2000
};
std::tm timeinfo{.tm_sec = 0,
.tm_min = 42,
.tm_hour = 13,
.tm_mday = 24,
.tm_mon = 10, // 0-11, so 10 is November
.tm_year = 123, // years since 1900, so 100 is 2000
.tm_wday = 0,
.tm_yday = 0,
.tm_isdst = -1};
Comment thread
finger563 marked this conversation as resolved.
Outdated
std::error_code ec;
bsp.rtc()->set_time(timeinfo, ec);
if (ec) {
Expand Down
Loading