diff --git a/slave/slave/lib/sensors.c b/slave/slave/lib/sensors.c --- a/slave/slave/lib/sensors.c +++ b/slave/slave/lib/sensors.c @@ -254,12 +254,20 @@ void sensors_readAnalog(uint8_t pin) analog[pin] = (analog[pin] * 10.0) / 67.4; } -void sensors_readDigital(uint8_t pin) +void sensors_readDigitalPORTA(uint8_t pin) { DDRA &= ~(1 << pin); // Set pin to input - digital = PINA; + digital |= (~(1 << pin)) & PINA; } +void sensors_readDigitalPORTD(uint8_t pin) +{ + if(pin > 3 && pin < 7) + { + DDRD &= ~(1 << pin); // Set pin to input + digital |= (~(1 << pin)) & PIND; + } +} int16_t sensors_getSpiTemp(void) // Gets spi temperature from variable { diff --git a/slave/slave/lib/sensors.h b/slave/slave/lib/sensors.h --- a/slave/slave/lib/sensors.h +++ b/slave/slave/lib/sensors.h @@ -18,7 +18,8 @@ void sensors_readHumid(void); // Reads void sensors_readLux(void); // Reads lux void sensors_readBatt(void); // Reads battery voltage from ADC void sensors_readAnalog(uint8_t pin); // Reads generic analog voltage from ADC -void sensors_readDigital(uint8_t pin); // Reads generic analog voltage from ADC +void sensors_readDigitalPORTA(uint8_t pin); // Read digital pin on PORTA +void sensors_readDigitalPORTD(uint8_t pin); // Read digital pin on PORTD int16_t sensors_getSpiTemp(void); // Gets spi temperature from variable int8_t sensors_getBoardTemp(void); // Gets board temperature from variable