# HG changeset patch # User ethanzonca@CL-ENS241-08.cedarville.edu # Date 2013-04-29 20:58:32 # Node ID 72e77cc215152cccb0cc7a680f0d515590dd37fb # Parent 1b16ee7a83df54dfdc672d0dc856e77120b4e2e1 Digital read fixes 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 @@ -33,7 +33,8 @@ uint16_t vBatt; // battery voltage int8_t analogL; // Low byte of ADC int16_t analog[8]; // Read analog voltage from ADC -uint8_t digital; // Byte that contains the digital inputs from PORTA +uint8_t digitalA; // Byte that contains the digital inputs from PORTA +uint8_t digitalD; // Byte that contains the digital inputs from PORTD int16_t ac1; // The following 11 variables are the calibration values for the BMP085 int16_t ac2; @@ -257,7 +258,7 @@ void sensors_readAnalog(uint8_t pin) void sensors_readDigitalPORTA(uint8_t pin) { DDRA &= ~(1 << pin); // Set pin to input - digital |= (~(1 << pin)) & PINA; + digitalA |= (~(1 << pin)) & PINA; } void sensors_readDigitalPORTD(uint8_t pin) @@ -265,7 +266,7 @@ void sensors_readDigitalPORTD(uint8_t pi if(pin > 3 && pin < 7) { DDRD &= ~(1 << pin); // Set pin to input - digital |= (~(1 << pin)) & PIND; + digitalD |= (~(1 << pin)) & PIND; } } @@ -304,9 +305,14 @@ int16_t sensors_getAnalog(uint8_t pin) return analog[pin]; } -uint8_t sensors_getDigital(uint8_t pin) // Gets battery voltage from variable +uint8_t sensors_getDigitalPORTA(uint8_t pin) // Gets battery voltage from variable { - return ((digital >> pin) & 1); + return ((digitalA >> pin) & 1); +} + +uint8_t sensors_getDigitalPORTD(uint8_t pin) // Gets battery voltage from variable +{ + return ((digitalD >> pin) & 1); } uint32_t sensors_getAltitude(void) 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 @@ -29,6 +29,7 @@ uint32_t sensors_getLux(void); // Gets uint16_t sensors_getBatt(void); // Gets battery voltage from variable uint32_t sensors_getAltitude(void); // Gets altitude from variable int16_t sensors_getAnalog(uint8_t pin); // Gets battery voltage from variable -uint8_t sensors_getDigital(uint8_t pin); // Gets battery voltage from variable +uint8_t sensors_getDigitalPORTA(uint8_t pin); // Gets battery voltage from variable +uint8_t sensors_getDigitalPORTD(uint8_t pin); #endif /* SENSORS_H_ */ \ No newline at end of file