]> granicus.if.org Git - esp-idf/commitdiff
PCNT: Fixed pcnt_counter_clear, Pulse Count now able to resume after API call
authorNilay <nilay@espressif.com>
Fri, 16 Jun 2017 05:41:52 +0000 (11:11 +0530)
committerNilay <nilay@espressif.com>
Fri, 16 Jun 2017 05:41:52 +0000 (11:11 +0530)
components/driver/pcnt.c

index 9c16e92eb76d7b9d21cbf8de003ad73fbd582a16..907221edfe4434f161408610999b131f60696c86 100644 (file)
@@ -143,7 +143,9 @@ esp_err_t pcnt_counter_clear(pcnt_unit_t pcnt_unit)
 {
     PCNT_CHECK(pcnt_unit < PCNT_UNIT_MAX, PCNT_UNIT_ERR_STR, ESP_ERR_INVALID_ARG);
     PCNT_ENTER_CRITICAL(&pcnt_spinlock);
-    PCNT.ctrl.val &= (~(BIT(PCNT_PLUS_CNT_RST_U0_S + (pcnt_unit * 2))));
+    uint32_t reset_bit = BIT(PCNT_PLUS_CNT_RST_U0_S + (pcnt_unit * 2));
+    PCNT.ctrl.val |= reset_bit;
+    PCNT.ctrl.val &= ~reset_bit;
     PCNT_EXIT_CRITICAL(&pcnt_spinlock);
     return ESP_OK;
 }