src.nth.io/

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/Kconfig.projbuild4
-rw-r--r--main/app_main.c2
-rw-r--r--main/src/bell.c8
3 files changed, 7 insertions, 7 deletions
diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild
index 4db48b4..5230dca 100644
--- a/main/Kconfig.projbuild
+++ b/main/Kconfig.projbuild
@@ -45,8 +45,8 @@ menu "HomeKit Intercom Configuration"
config HOMEKIT_INTERCOM_BELL_ADC1_CHANNEL
int "Intercom bell ADC1 channel number"
- range 0 12
- default 9
+ range 0 7
+ default 5
help
ADC1 channel number from which to read intercom bell signal.
diff --git a/main/app_main.c b/main/app_main.c
index 8b601e3..e1d42b4 100644
--- a/main/app_main.c
+++ b/main/app_main.c
@@ -30,7 +30,7 @@ static void intercom_thread_entry(void *p)
.cid = HAP_CID_DOOR,
};
- ESP_LOGI(TAG, "Intercom GPIO Pins [BELL: %d, ADC1: %d, LOCK: %d]", CONFIG_HOMEKIT_INTERCOM_BELL_GPIO_PIN, CONFIG_HOMEKIT_INTERCOM_BELL_ADC1_CHANNEL, CONFIG_HOMEKIT_INTERCOM_LOCK_GPIO_PIN);
+ ESP_LOGI(TAG, "GPIO Pins [BELL: %d, ADC1: %d, LOCK: %d, LED: %d]", CONFIG_HOMEKIT_INTERCOM_BELL_GPIO_PIN, CONFIG_HOMEKIT_INTERCOM_BELL_ADC1_CHANNEL, CONFIG_HOMEKIT_INTERCOM_LOCK_GPIO_PIN, CONFIG_HOMEKIT_INTERCOM_LED_GPIO_PIN);
hap_acc_t *intercom_accessory = hap_acc_create(&cfg);
diff --git a/main/src/bell.c b/main/src/bell.c
index d8dd7d0..cfe05a7 100644
--- a/main/src/bell.c
+++ b/main/src/bell.c
@@ -36,7 +36,6 @@ void IRAM_ATTR intercom_bell_isr(void *arg)
{
ESP_LOGI(TAG, "Intercom bell ring value in range [%d]", val);
intercom_bell_ring();
- is_intercom_bell_blocked = true;
}
else
{
@@ -48,6 +47,7 @@ void intercom_bell_ring()
{
ESP_LOGI(TAG, "Intercom bell ring");
hap_char_update_val(intercom_bell_current_state, &HAP_PROGRAMMABLE_SWITCH_EVENT_SINGLE_PRESS);
+ is_intercom_bell_blocked = true;
xTimerReset(intercom_bell_timer, 10);
}
@@ -68,7 +68,7 @@ hap_serv_t *intercom_bell_init(uint32_t key_gpio_pin)
gpio_config_t io_conf;
- io_conf.intr_type = GPIO_INTR_POSEDGE; /* Interrupt for rising edge */
+ io_conf.intr_type = GPIO_INTR_NEGEDGE; /* Interrupt for rising edge */
io_conf.pin_bit_mask = 1ULL << key_gpio_pin; /* Bit mask of the pins */
io_conf.mode = GPIO_MODE_INPUT; /* Set as input mode */
io_conf.pull_up_en = GPIO_PULLUP_DISABLE; /* Disable internal pull-up */
@@ -80,8 +80,8 @@ hap_serv_t *intercom_bell_init(uint32_t key_gpio_pin)
gpio_isr_handler_add(key_gpio_pin, intercom_bell_isr, (void *)key_gpio_pin); /* Hook isr handler for specified gpio pin */
// https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/adc.html#_CPPv425adc1_config_channel_atten14adc1_channel_t11adc_atten_t
- adc1_config_width(ADC_WIDTH_MAX);
- adc1_config_channel_atten(CONFIG_HOMEKIT_INTERCOM_BELL_ADC1_CHANNEL, ADC_ATTEN_MAX);
+ adc1_config_width(ADC_WIDTH_BIT_12);
+ adc1_config_channel_atten(CONFIG_HOMEKIT_INTERCOM_BELL_ADC1_CHANNEL, ADC_ATTEN_DB_6);
return intercom_bell_service;
}