# HG changeset patch # User kripperger@CL-SEC241-09.cedarville.edu # Date 2013-01-21 19:41:29 # Node ID a2269c9fe536f185abc05f8b429ed587e424de5b # Parent 6b25c240180b11220f550442437f8c4aa867dd1e # Parent be853f009bb8465c15020c3e5830fc3fc6c6c3bd merge diff --git a/master/master/lib/led.c b/master/master/lib/led.c --- a/master/master/lib/led.c +++ b/master/master/lib/led.c @@ -13,6 +13,7 @@ #include "../config.h" #include #include +#include #include "led.h" // Configure port direction and initial state of LEDs @@ -86,4 +87,19 @@ void led_spin() { led_off(LED_ACT0); } ctr = (ctr + 1) % 4; +} + + +bool pulseUp = true; +void led_pulsate() { + if(OCR0B >= 240 && pulseUp) + pulseUp = false; + else if(OCR0B <= 12 && !pulseUp); + pulseUp = true; + + if(pulseUp) + OCR0B+=5; + else + OCR0B-=5; + } \ No newline at end of file diff --git a/master/master/lib/looptime.c b/master/master/lib/looptime.c --- a/master/master/lib/looptime.c +++ b/master/master/lib/looptime.c @@ -22,7 +22,9 @@ void time_setup() { // Generic microcontroller config options OCR0A = 173; // Approx 172.7969 ticks per ms with 64 prescaler - OCR0B = 15; + + + OCR0B = 20; // Power LED TCCR0A |= (1 << WGM01) | (1 << WGM00) | // Count until OCR0A, then overflow (wgm02 in the next line specifies this as well) (1<< COM0B1); // Non-inverting PWM on OC0B diff --git a/master/master/lib/serial.c b/master/master/lib/serial.c --- a/master/master/lib/serial.c +++ b/master/master/lib/serial.c @@ -136,17 +136,12 @@ void serial1_sendString(const char* stri } } -void serial_sendCommand( char moduleID, char sensorID, char* data ) +void serial_sendCommand(char* data ) { char checkSum = 0x00; //initialize checksum serial0_sendChar('['); //bracket indicates start of command - serial0_sendChar(moduleID); - checkSum+=moduleID; - - serial0_sendChar(sensorID); - checkSum+=sensorID; - + // send data, null-terminated while(*data != 0x00) { @@ -154,8 +149,7 @@ void serial_sendCommand( char moduleID, checkSum += *data; data++; } - - + serial0_sendChar(']'); //bracket indicates end of command serial0_sendChar(checkSum); // checksum moved behind bracket to solve bug FS#29 } diff --git a/master/master/lib/serial.h b/master/master/lib/serial.h --- a/master/master/lib/serial.h +++ b/master/master/lib/serial.h @@ -32,7 +32,7 @@ unsigned char serial0_readChar(); uint8_t serial0_hasChar(); char* serial0_readLine(); -void serial_sendCommand( char moduleID, char sensorID, char* data ); +void serial_sendCommand( char* data ); void serial_sendResponseData(); void serial1_ion(); diff --git a/master/master/lib/serparser.c b/master/master/lib/serparser.c --- a/master/master/lib/serparser.c +++ b/master/master/lib/serparser.c @@ -90,7 +90,7 @@ ISR(USART0_RX_vect) -//#define DEBUG +#define DEBUG // Parse data from circular buffer int serparser_parse(void) @@ -111,7 +111,7 @@ int serparser_parse(void) #ifdef DEBUG serial0_sendString("start\r\n"); #endif - setParserState(STATE_GETID); + setParserState(STATE_GETDATATYPE); } else // Not start of frame, reset { @@ -123,26 +123,6 @@ int serparser_parse(void) } } - // Get destination module ID - else if(parserState == STATE_GETID) - { - if(byte == MODULE_ID) // Message intended for this module; keep parsing - { - #ifdef DEBUG - serial0_sendString("dest\r\n"); - #endif - checksumCalc += byte; - setParserState(STATE_GETDATATYPE); - } - else // Transmission is intended for another module; reset - { - #ifdef DEBUG - serial0_sendString("bad dest\r\n"); - #endif - setParserState(STATE_RESET); - } - } - // Get payload type ID else if(parserState == STATE_GETDATATYPE) { diff --git a/master/master/lib/serparser.h b/master/master/lib/serparser.h --- a/master/master/lib/serparser.h +++ b/master/master/lib/serparser.h @@ -26,7 +26,6 @@ enum parseResults enum parseStates { STATE_RESET = 0, - STATE_GETID, STATE_GETDATATYPE, STATE_GETDATA, STATE_GETCHECKSUM, 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 @@ -30,35 +30,7 @@ bool requesting = false; void slavesensors_setup() { - // Empty array - for(int i=0; i= nodeCount && currentSlaveSensor >= numValues) { currentSlave = 0; currentSlaveSensor = 0; requesting = false; } // If we finished up one slave, go to the next - else if(slaves[currentSlave][currentSlaveSensor+1] == NONE) + else if(currentSlaveSensor >= numValues) { currentSlave++; currentSlaveSensor = 0;