Init
This commit is contained in:
commit
6d9c85cdf9
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
build
|
||||||
|
sdkconfig
|
||||||
|
sdkconfig.old
|
51
.vscode/c_cpp_properties.json
vendored
Normal file
51
.vscode/c_cpp_properties.json
vendored
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
{
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "MAC_ESP32",
|
||||||
|
"compilerPath": "${config:idf.toolsPath}/tools/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/xtensa-esp32-elf-gcc",
|
||||||
|
"compileCommands": "${workspaceFolder}/build/compile_commands.json",
|
||||||
|
"includePath": [
|
||||||
|
"${workspaceFolder}/**",
|
||||||
|
"/Users/alexey.zholtikov/esp/v5.2/esp-idf/components/**"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "MAC_ESP8266",
|
||||||
|
"compilerPath": "/Users/alexey.zholtikov/.espressif/tools/xtensa-lx106-elf/esp-2020r3-49-gd5524c1-8.4.0/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc-8.4.0",
|
||||||
|
"includePath": [
|
||||||
|
"${workspaceFolder}/**",
|
||||||
|
"${workspaceFolder}/build/include/*",
|
||||||
|
"/Users/alexey.zholtikov/esp/ESP8266_RTOS_SDK/components/**",
|
||||||
|
"/Users/alexey.zholtikov/esp/ESP8266_RTOS_SDK/components/freertos/port/esp8266/include"
|
||||||
|
],
|
||||||
|
"defines": [
|
||||||
|
"__ESP_FILE__"
|
||||||
|
],
|
||||||
|
"compileCommands": "${workspaceFolder}/build/compile_commands.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "LINUX_ESP32",
|
||||||
|
"compilerPath": "/home/alexey-zholtikov/.espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc",
|
||||||
|
"compileCommands": "${workspaceFolder}/build/compile_commands.json",
|
||||||
|
"includePath": [
|
||||||
|
"${workspaceFolder}/**",
|
||||||
|
"/home/alexey-zholtikov/esp/esp-idf/components/**"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "LINUX_ESP8266",
|
||||||
|
"compilerPath": "/home/alexey-zholtikov/.espressif/tools/xtensa-lx106-elf/esp-2020r3-49-gd5524c1-8.4.0/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc-8.4.0",
|
||||||
|
"includePath": [
|
||||||
|
"${workspaceFolder}/**",
|
||||||
|
"${workspaceFolder}/build/include/*",
|
||||||
|
"/home/alexey-zholtikov/esp/ESP8266_RTOS_SDK/components/**",
|
||||||
|
"/home/alexey-zholtikov/esp/ESP8266_RTOS_SDK/components/freertos/port/esp8266/include"
|
||||||
|
],
|
||||||
|
"defines": [
|
||||||
|
"__ESP_FILE__"
|
||||||
|
],
|
||||||
|
"compileCommands": "${workspaceFolder}/build/compile_commands.json"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": 4
|
||||||
|
}
|
53
.vscode/settings.json
vendored
Normal file
53
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
"cmake.configureOnOpen": false,
|
||||||
|
"files.associations": {
|
||||||
|
"freertos.h": "c",
|
||||||
|
"task.h": "c",
|
||||||
|
"esp_system.h": "c",
|
||||||
|
"portable.h": "c",
|
||||||
|
"portmacro.h": "c",
|
||||||
|
"xtensa_rtos.h": "c",
|
||||||
|
"xtensa_timer.h": "c",
|
||||||
|
"sdkconfig.h": "c",
|
||||||
|
"esp_err.h": "c",
|
||||||
|
"esp_ota_ops.h": "c",
|
||||||
|
"zh_nvs.h": "c",
|
||||||
|
"zh_gpio.h": "c",
|
||||||
|
"zh_espnow.h": "c",
|
||||||
|
"zh_json.h": "c",
|
||||||
|
"esp_app_format.h": "c",
|
||||||
|
"esp_now.h": "c",
|
||||||
|
"esp_timer.h": "c",
|
||||||
|
"esp_wifi.h": "c",
|
||||||
|
"string.h": "c",
|
||||||
|
"event_groups.h": "c",
|
||||||
|
"gpio.h": "c",
|
||||||
|
"nvs.h": "c",
|
||||||
|
"*.inc": "c",
|
||||||
|
"nvs_flash.h": "c",
|
||||||
|
"esp_netif.h": "c",
|
||||||
|
"queue.h": "c",
|
||||||
|
"stdint.h": "c",
|
||||||
|
"stdio.h": "c",
|
||||||
|
"stdbool.h": "c",
|
||||||
|
"zh_onewire.h": "c",
|
||||||
|
"zh_config.h": "c",
|
||||||
|
"tcpip_adapter.h": "c",
|
||||||
|
"dhcpserver.h": "c",
|
||||||
|
"ip_addr.h": "c",
|
||||||
|
"array": "c",
|
||||||
|
"string": "c",
|
||||||
|
"string_view": "c",
|
||||||
|
"stdlib.h": "c",
|
||||||
|
"esp_heap_caps.h": "c",
|
||||||
|
"zh_vector.h": "c",
|
||||||
|
"rmt.h": "c",
|
||||||
|
"rmt_rx.h": "c"
|
||||||
|
},
|
||||||
|
"idf.adapterTargetName": "esp32",
|
||||||
|
"idf.port": "/dev/cu.usbserial-0001",
|
||||||
|
"idf.flashType": "UART",
|
||||||
|
"idf.openOcdConfigs": [
|
||||||
|
"board/esp32-wrover-kit-3.3v.cfg"
|
||||||
|
]
|
||||||
|
}
|
3
CMakeLists.txt
Normal file
3
CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||||
|
project(template)
|
2
Makefile
Normal file
2
Makefile
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
PROJECT_NAME := template
|
||||||
|
include $(IDF_PATH)/make/project.mk
|
1
main/CMakeLists.txt
Normal file
1
main/CMakeLists.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
idf_component_register(SRCS "main.c" INCLUDE_DIRS "")
|
0
main/component.mk
Normal file
0
main/component.mk
Normal file
67
main/main.c
Normal file
67
main/main.c
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
#include "stdio.h"
|
||||||
|
#include "driver/rmt_rx.h"
|
||||||
|
#include "driver/gpio.h"
|
||||||
|
// #include "freertos/queue.h"
|
||||||
|
// #include "freertos/task.h"
|
||||||
|
#include "freertos/FreeRTOS.h"
|
||||||
|
|
||||||
|
// static bool example_rmt_rx_done_callback(rmt_channel_handle_t channel, const rmt_rx_done_event_data_t *edata, void *user_data)
|
||||||
|
// {
|
||||||
|
// // BaseType_t high_task_wakeup = pdFALSE;
|
||||||
|
// // QueueHandle_t receive_queue = (QueueHandle_t)user_data;
|
||||||
|
// // // send the received RMT symbols to the parser task
|
||||||
|
// // xQueueSendFromISR(receive_queue, edata, &high_task_wakeup);
|
||||||
|
// // // return whether any task is woken up
|
||||||
|
// // return high_task_wakeup == pdTRUE;
|
||||||
|
// }
|
||||||
|
|
||||||
|
void app_main(void)
|
||||||
|
{
|
||||||
|
gpio_config_t config;
|
||||||
|
config.intr_type = GPIO_INTR_DISABLE;
|
||||||
|
config.mode = GPIO_MODE_INPUT;
|
||||||
|
config.pin_bit_mask = (1ULL << 5);
|
||||||
|
config.pull_down_en = GPIO_PULLDOWN_DISABLE;
|
||||||
|
config.pull_up_en = GPIO_PULLUP_ENABLE;
|
||||||
|
gpio_config(&config);
|
||||||
|
gpio_set_direction(5, GPIO_MODE_OUTPUT);
|
||||||
|
gpio_set_level(5, 0);
|
||||||
|
vTaskDelay(10 / portTICK_PERIOD_MS);
|
||||||
|
// gpio_set_level(5, 1);
|
||||||
|
gpio_set_direction(5, GPIO_MODE_INPUT);
|
||||||
|
|
||||||
|
rmt_channel_handle_t rx_channel = NULL;
|
||||||
|
rmt_rx_channel_config_t rx_chan_config = {
|
||||||
|
.gpio_num = 5, // GPIO number
|
||||||
|
.clk_src = RMT_CLK_SRC_DEFAULT, // select source clock
|
||||||
|
.resolution_hz = 1 * 1000 * 1000, // 1MHz tick resolution, i.e. 1 tick = 1us
|
||||||
|
.mem_block_symbols = 64, // memory block size, 64 * 4 = 256Bytes
|
||||||
|
.flags.invert_in = false, // don't invert input signal
|
||||||
|
.flags.with_dma = false, // don't need DMA backend
|
||||||
|
// .flags.io_loop_back=false,
|
||||||
|
// .intr_priority=0,
|
||||||
|
};
|
||||||
|
ESP_ERROR_CHECK(rmt_new_rx_channel(&rx_chan_config, &rx_channel));
|
||||||
|
|
||||||
|
// QueueHandle_t receive_queue = xQueueCreate(1, sizeof(rmt_rx_done_event_data_t));
|
||||||
|
// rmt_rx_event_callbacks_t cbs = {
|
||||||
|
// .on_recv_done = example_rmt_rx_done_callback,
|
||||||
|
// };
|
||||||
|
// ESP_ERROR_CHECK(rmt_rx_register_event_callbacks(rx_channel, &cbs, NULL));
|
||||||
|
|
||||||
|
// the following timing requirement is based on NEC protocol
|
||||||
|
rmt_receive_config_t receive_config = {
|
||||||
|
.signal_range_min_ns = 20000, // the shortest duration for NEC signal is 560us, 1250ns < 560us, valid signal won't be treated as noise
|
||||||
|
.signal_range_max_ns = 90000, // the longest duration for NEC signal is 9000us, 12000000ns > 9000us, the receive won't stop early
|
||||||
|
};
|
||||||
|
|
||||||
|
rmt_symbol_word_t raw_symbols[64]; // 64 symbols should be sufficient for a standard NEC frame
|
||||||
|
// ready to receive
|
||||||
|
ESP_ERROR_CHECK(rmt_receive(rx_channel, raw_symbols, sizeof(raw_symbols), &receive_config));
|
||||||
|
// wait for RX done signal
|
||||||
|
// rmt_rx_done_event_data_t rx_data;
|
||||||
|
for (uint8_t i = 0; i < 64; ++i)
|
||||||
|
{
|
||||||
|
printf("%d, %d, %d, %d\n", raw_symbols[i].duration0, raw_symbols[i].level0, raw_symbols[i].duration1, raw_symbols[i].level1);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user