diff --git a/firmware/Makefile b/firmware/Makefile index a974b77..e6f0c83 100755 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -23,11 +23,17 @@ LUFA_PATH = ../LUFA/LUFA CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -Iuart/ LD_FLAGS = PROGRAMMER = dfu-programmer +MUX_TOOL =../tools/muxctrl.py +PYTHON = python # Default target all: -program: +reset: + -$(PYTHON) $(MUX_TOOL) -d /dev/ttyACM0 -r + -sleep 2 + +program: reset $(PROGRAMMER) $(MCU) erase $(PROGRAMMER) $(MCU) flash $(TARGET).hex $(PROGRAMMER) $(MCU) reset diff --git a/firmware/command_config.h b/firmware/command_config.h index b502cbe..ca73329 100755 --- a/firmware/command_config.h +++ b/firmware/command_config.h @@ -21,7 +21,6 @@ /*****************************************************************************/ - void cc_setBaudrate(void); void cc_getBaudrate(void); void cc_setMuxLine(void); diff --git a/firmware/command_ctrl.c b/firmware/command_ctrl.c index e119c5f..ab17cd1 100755 --- a/firmware/command_ctrl.c +++ b/firmware/command_ctrl.c @@ -144,3 +144,16 @@ void cc_clearReadDataBuffer() } /*****************************************************************************/ + +uint32_t read32BitFromBuffer(uint8_t pos) +{ + uint32_t tmp = (uint32_t)cc_read_data[pos ] << 24; + tmp += (uint32_t)cc_read_data[pos + 1] << 16; + tmp += (uint32_t)cc_read_data[pos + 2] << 8; + tmp += (uint32_t)cc_read_data[pos + 3]; + + return tmp; +} + +/*****************************************************************************/ + diff --git a/firmware/command_ctrl.h b/firmware/command_ctrl.h index c89a2f7..67be7cd 100755 --- a/firmware/command_ctrl.h +++ b/firmware/command_ctrl.h @@ -29,6 +29,8 @@ extern void USB_serialStreamWriteC(char*, uint16_t); +uint32_t read32BitFromBuffer(uint8_t); + void cc_init(void); void cc_abort(void); void cc_processData(uint8_t); diff --git a/firmware/command_functions.c b/firmware/command_functions.c index b4e5400..4e46f02 100755 --- a/firmware/command_functions.c +++ b/firmware/command_functions.c @@ -15,10 +15,7 @@ extern uint32_t baudrate; void cc_setBaudrate() { - baudrate = (uint32_t)cc_read_data[0] << 24; - baudrate += (uint32_t)cc_read_data[1] << 16; - baudrate += (uint32_t)cc_read_data[2] << 8; - baudrate += (uint32_t)cc_read_data[3]; + baudrate = read32BitFromBuffer(0); eeprom_busy_wait(); diff --git a/firmware/main.c b/firmware/main.c index 75340b1..757a2bb 100755 --- a/firmware/main.c +++ b/firmware/main.c @@ -261,7 +261,7 @@ void CDC2_Task(void) /* Finalize the stream transfer to send the last packet */ Endpoint_ClearOUT(); - // TODO at this point send the data to the USART + // at this point send the data to the USART // Send USART &Buffer for (uint16_t i = 0; i < DataLength; i++) { @@ -271,7 +271,7 @@ void CDC2_Task(void) //===================================== uint8_t outBuffer[OUTPUT_BUFFER_SIZE]; - // TODO read the USART data and send them to the host + // read the USART data and send them to the host // Fill &Buffer with USART data or send the USART input buffer direct uint16_t cnt = 0; int c = uart_getc(); diff --git a/firmware/main.h b/firmware/main.h index 956d133..3049983 100755 --- a/firmware/main.h +++ b/firmware/main.h @@ -58,7 +58,6 @@ /* UART definitions: */ - //#define UART_BAUD_RATE 115200 #define OUTPUT_BUFFER_SIZE 100 #include "uart/uart.h" // include after the definition