feat: added gpio interrupt time
This commit is contained in:
@@ -1 +1 @@
|
||||
idf_component_register(SRCS "zh_pcf8574.c" INCLUDE_DIRS "include" REQUIRES driver esp_event zh_vector)
|
||||
idf_component_register(SRCS "zh_pcf8574.c" INCLUDE_DIRS "include" REQUIRES driver esp_timer esp_event zh_vector)
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include "esp_log.h"
|
||||
#include "driver/gpio.h"
|
||||
#include "esp_timer.h"
|
||||
#include "driver/i2c_master.h"
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/task.h"
|
||||
@@ -112,6 +113,7 @@ extern "C"
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint64_t interrupt_time; /*!< Interrupt time. */
|
||||
zh_pcf8574_gpio_num_t gpio_number; /*!< The GPIO that caused the interrupt. */
|
||||
uint8_t i2c_address; /*!< The i2c address of PCF8574 expander that caused the interrupt. */
|
||||
bool gpio_level; /*!< The GPIO level that caused the interrupt. */
|
||||
|
||||
@@ -1 +1 @@
|
||||
2.5.1
|
||||
2.6.0
|
||||
@@ -328,6 +328,7 @@ static void IRAM_ATTR _zh_pcf8574_isr_processing_task(void *pvParameter)
|
||||
{
|
||||
event.gpio_number = j;
|
||||
event.gpio_level = new_reg & _gpio_matrix[j];
|
||||
event.interrupt_time = esp_timer_get_time();
|
||||
err = esp_event_post(ZH_PCF8574, 0, &event, sizeof(event), 1000 / portTICK_PERIOD_MS);
|
||||
if (err != ESP_OK)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user