Nýjir kóðar og uppfærðir gamlir kóðar fyrir arduino yfir í zephyr
This commit is contained in:
+57
-7
@@ -1,14 +1,64 @@
|
||||
#include <avr/io.h>
|
||||
//#include <avr/io.h>
|
||||
#include "digital_in.h"
|
||||
|
||||
Digital_in::Digital_in(uint8_t pin) : pin_mask(1<<pin) {}
|
||||
#include <zephyr/devicetree.h>
|
||||
|
||||
void Digital_in::init() {
|
||||
DDRD &= ~pin_mask;
|
||||
PORTD |= pin_mask;
|
||||
// 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(); }
|
||||
|
||||
static const struct gpio_dt_spec encoder_c1_gpio =
|
||||
GPIO_DT_SPEC_GET(DT_ALIAS(encoder_c1), gpios);
|
||||
|
||||
static const struct gpio_dt_spec encoder_c2_gpio =
|
||||
GPIO_DT_SPEC_GET(DT_ALIAS(encoder_c2), gpios);
|
||||
|
||||
Digital_in::Digital_in(uint8_t pin_id)
|
||||
: gpio(nullptr)
|
||||
{
|
||||
switch (pin_id) {
|
||||
case ENCODER_C1:
|
||||
gpio = &encoder_c1_gpio;
|
||||
break;
|
||||
|
||||
case ENCODER_C2:
|
||||
gpio = &encoder_c2_gpio;
|
||||
break;
|
||||
|
||||
default:
|
||||
gpio = nullptr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool Digital_in::is_hi() { return PIND & pin_mask; }
|
||||
bool Digital_in::is_lo() { return !is_hi(); }
|
||||
void Digital_in::init()
|
||||
{
|
||||
if (gpio == nullptr || !gpio_is_ready_dt(gpio)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// The overlay supplies the pin's GPIO flags.
|
||||
gpio_pin_configure_dt(gpio, GPIO_INPUT);
|
||||
}
|
||||
|
||||
bool Digital_in::is_hi()
|
||||
{
|
||||
if (gpio == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Read the physical pin level: high is true, low is false.
|
||||
return gpio_pin_get_raw(gpio->port, gpio->pin) > 0;
|
||||
}
|
||||
|
||||
bool Digital_in::is_lo()
|
||||
{
|
||||
return !is_hi();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user