Heljarinnar breytingar til þess að laga nokkra hluti í part 1.

This commit is contained in:
2026-10-15 12:15:50 +00:00
parent 782feb2d04
commit 6d384265eb
32 changed files with 188 additions and 696 deletions
+21 -11
View File
@@ -1,17 +1,8 @@
//#include <avr/io.h>
#include "digital_in.h"
#include <errno.h>
#include <zephyr/devicetree.h>
// Digital_in::Digital_in(uint8_t pin) : pin_mask(1<<pin) {}
// void Digital_in::init() {
// DDRD &= ~pin_mask;
// PORTD |= pin_mask;
// }
// bool Digital_in::is_hi() { return PIND & pin_mask; }
// bool Digital_in::is_lo() { return !is_hi(); }
#include <zephyr/sys/util.h>
static const struct gpio_dt_spec encoder_c1_gpio =
GPIO_DT_SPEC_GET(DT_ALIAS(encoder_c1), gpios);
@@ -62,3 +53,22 @@ bool Digital_in::is_lo()
return !is_hi();
}
int Digital_in::enable_rising_edge_interrupt(
struct gpio_callback *callback,
gpio_callback_handler_t handler)
{
if (gpio == nullptr || !gpio_is_ready_dt(gpio)) {
return -ENODEV;
}
gpio_init_callback(callback, handler, BIT(gpio->pin));
const int ret = gpio_add_callback(gpio->port, callback);
if (ret < 0) {
return ret;
}
// Physical rising edge, independent of the active level in the overlay.
return gpio_pin_interrupt_configure(
gpio->port, gpio->pin, GPIO_INT_EDGE_RISING);
}