diff --git a/master/master/lib/gps.c b/master/master/lib/gps.c --- a/master/master/lib/gps.c +++ b/master/master/lib/gps.c @@ -19,6 +19,7 @@ #include "serial.h" #include "../config.h" #include "led.h" +#include "logger.h" // Circular buffer for incoming data uint8_t nmeaBuffer[NMEABUFFER_SIZE]; diff --git a/master/master/lib/led.h b/master/master/lib/led.h --- a/master/master/lib/led.h +++ b/master/master/lib/led.h @@ -32,7 +32,7 @@ enum leds { LED_BUZZ, }; -typedef struct {uint8_t* direction; uint8_t* port; uint8_t pin;} led_t; +typedef struct {volatile uint8_t* direction; volatile uint8_t* port; uint8_t pin;} led_t; // Match order of leds enum static led_t ledList[] = { diff --git a/master/master/lib/logger.c b/master/master/lib/logger.c --- a/master/master/lib/logger.c +++ b/master/master/lib/logger.c @@ -111,8 +111,8 @@ void logger_setup() // we pre-increment logid here because it starts at 255, then wraps to 0 - uint8_t logid = eeprom_read_byte(LOGGER_ID_EEPROM_ADDR) + 1; - eeprom_update_byte(LOGGER_ID_EEPROM_ADDR, logid); + uint8_t logid = eeprom_read_byte((uint8_t*)LOGGER_ID_EEPROM_ADDR) + 1; + eeprom_update_byte((uint8_t*)LOGGER_ID_EEPROM_ADDR, logid); int32_t errorOffset = 0; char errorFilename[17]; diff --git a/master/master/lib/sdcard/sd_raw.c b/master/master/lib/sdcard/sd_raw.c --- a/master/master/lib/sdcard/sd_raw.c +++ b/master/master/lib/sdcard/sd_raw.c @@ -341,8 +341,7 @@ uint8_t sd_raw_init() */ uint8_t sd_raw_available() { - int i; - return 1; // !!TODO: OH GOSH CHANGE ME + return 1; // EMZ: Assume always available return get_pin_available() == 0x00; } @@ -354,9 +353,7 @@ uint8_t sd_raw_available() */ uint8_t sd_raw_locked() { - int i; - // !!TODO oh gosh change me - return 0; + return 0; // EMZ: Assume always unlocked return get_pin_locked() == 0x00; } diff --git a/master/master/lib/slavesensors.c b/master/master/lib/slavesensors.c --- a/master/master/lib/slavesensors.c +++ b/master/master/lib/slavesensors.c @@ -486,7 +486,7 @@ void slavesensors_process(uint8_t parseR // if we're requesting, we have no data, and we're over the timeout, this is bad! // setParserState(STATE_RESET); - meh, can't do this because it freaking increments the cirbufptr gotoNextSlaveOrSensor(true); - char* msg[128]; + char msg[128]; snprintf(msg, 128, "Slave %u (%s) timeout",currentSlave,slaveNames[currentSlave]); error_log_msg(ERROR_SLAVETIMEOUT, false, msg); // log error, don't blink LED } diff --git a/master/master/master.c b/master/master/master.c --- a/master/master/master.c +++ b/master/master/master.c @@ -144,13 +144,16 @@ int main(void) lastAprsBroadcast = time_millis(); } + // Parse any serial data in the XBee software buffer parseResult = serparser_parse(); slavesensors_process(parseResult); + // Parse any NMEA messages in the GPS software buffer parse_gps_transmission(); + wdt_reset(); } } \ No newline at end of file