From 1aa94aaf949999fd5c08ebf4bfd2ff1992691a60 Mon Sep 17 00:00:00 2001 From: Maksym Date: Fri, 16 Aug 2024 03:24:40 +0200 Subject: [PATCH] test --- src/main.cpp | 51 +++++++++++++++++++-------------------------------- 1 file changed, 19 insertions(+), 32 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index e0e587c..197082f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -24,8 +24,7 @@ public: } byte fallCount; // private: - bool isDone; - bool flag; + bool isWaitingForHigh; unsigned long lastRead; unsigned long lowTime; unsigned long highTime; @@ -53,52 +52,40 @@ public: HallButton myHallButton[2] = {HallButton(3), HallButton(5)}; void gpio_callback(uint gpio, uint32_t events) { - - myHallButton[gpio == 3 ? 0 : 1].Pulse(micros(), events == GPIO_IRQ_EDGE_RISE); + byte hallButtonIndex = gpio == 3 ? 0 : 1; + byte secondHallButtonIndex = hallButtonIndex == 0 ? 1 : 0; + unsigned long timer = micros(); + myHallButton[hallButtonIndex].Pulse(timer, events == GPIO_IRQ_EDGE_RISE); + myHallButton[secondHallButtonIndex].Pulse(timer, gpio_get(secondHallButtonIndex == 1 ? 5 : 3)); } void setup() { - // gpio_set_irq_enabled_with_callback(PORT, GPIO_IRQ_EDGE_RISE, true, rising); - // alarmPool = alarm_pool_create(1, 1); - // alarm_pool_add_repeating_timer_us(alarmPool, 1, &timer_callback, NULL, &timer); - gpio_set_irq_enabled_with_callback(3, GPIO_IRQ_EDGE_RISE | GPIO_IRQ_EDGE_FALL, true, &gpio_callback); + gpio_set_irq_enabled_with_callback(3, GPIO_IRQ_EDGE_FALL | GPIO_IRQ_EDGE_RISE, true, &gpio_callback); gpio_set_irq_enabled(5, GPIO_IRQ_EDGE_FALL | GPIO_IRQ_EDGE_RISE, true); - // gpio_set_irq_enabled_with_callback(5, GPIO_IRQ_EDGE_RISE | GPIO_IRQ_EDGE_FALL, true, &gpio_callback); - _gpio_init(3); _gpio_init(5); - gpio_set_input_enabled(3, true); - gpio_pull_up(3); gpio_set_input_enabled(5, true); gpio_pull_up(5); - Serial.begin(115200); + _gpio_init(3); + gpio_set_input_enabled(3, true); + gpio_pull_up(3); + Serial.begin(9600); } -void parseSerial() -{ - switch (Serial.read()) - { - case 'a': - int threshold = Serial.parseInt(); - Serial.println(String(threshold)); - break; - } -} -unsigned long flag; void loop() { // int width = myHallButton[0].percent; // Serial.println(String(width)); // if (Serial.available() > 0) // parseSerial(); - uint64_t timer = millis(); - if (timer > flag + 100) + // uint64_t timer = millis(); + // if (timer > flag + 100) + // { + // flag = timer; + for (size_t i = 0; i < 2; i++) { - flag = timer; - for (size_t i = 0; i < 2; i++) - { - Serial.print(String(myHallButton[i].fallCount) + "\t" + String(myHallButton[i].percent) + "\t" + String(myHallButton[i].lowTime) + "\t" + String(myHallButton[i].highTime) + "\t"); - } - Serial.print("\n"); + Serial.print(String(myHallButton[i].percent) + "\t" + String(myHallButton[i].lowTime) + "\t" + String(myHallButton[i].highTime) + "\t"); } + Serial.print("\n"); + // } }