diff --git a/software/Firmware/Inc/ClockConfigurator.h b/software/Firmware/Inc/ClockConfigurator.h new file mode 100755 index 0000000..d0117ff --- /dev/null +++ b/software/Firmware/Inc/ClockConfigurator.h @@ -0,0 +1,14 @@ +/* + * ClockConfigurator.h + * + * Created on: 03.07.2019 + * Author: robert + */ + +#ifndef INC_CLOCKCONFIGURATOR_H_ +#define INC_CLOCKCONFIGURATOR_H_ + +void ClockConfigurator_Init(); + + +#endif /* INC_CLOCKCONFIGURATOR_H_ */ diff --git a/software/Firmware/Inc/Logger.h b/software/Firmware/Inc/Logger.h index 1fdfb57..14b85e6 100755 --- a/software/Firmware/Inc/Logger.h +++ b/software/Firmware/Inc/Logger.h @@ -14,4 +14,8 @@ void Logger_Init(); void Logger_Tick(); + +// used to redirect printf to UART +void putchar(char c); + #endif /* INC_LOGGER_H_ */ diff --git a/software/Firmware/Inc/PinoutConfiguration.h b/software/Firmware/Inc/PinoutConfiguration.h index 6e40398..b1f5713 100755 --- a/software/Firmware/Inc/PinoutConfiguration.h +++ b/software/Firmware/Inc/PinoutConfiguration.h @@ -9,13 +9,13 @@ #ifndef INC_PINOUTCONFIGURATION_H_ #define INC_PINOUTCONFIGURATION_H_ -#define ADC_CHIP_1_PIN 1 -#define ADC_CHIP_2_PIN 2 +#define PIN_ADC_CHIP_1 1 +#define PIN_ADC_CHIP_2 2 -#define PEAK_DETECTOR_PIN 3 +#define PIN_PULSE_COUNTER 3 -#define LED_GPIO_PORT (GPIOD) -#define LED_GREEN_GPIO_PIN (GPIO_PIN_2) -#define LED_RED_GPIO_PIN (GPIO_PIN_3) +#define PORT_GPIO_LED GPIOD +#define PIN_GPIO_LED_GREEN GPIO_PIN_2 +#define PIN_GPIO_LED_RED GPIO_PIN_3 #endif /* INC_PINOUTCONFIGURATION_H_ */ diff --git a/software/Firmware/Inc/PulseCounter.h b/software/Firmware/Inc/PulseCounter.h index 539c718..d17327b 100755 --- a/software/Firmware/Inc/PulseCounter.h +++ b/software/Firmware/Inc/PulseCounter.h @@ -10,7 +10,7 @@ #include "CommonDataTypes.h" -bool PulseCounter_Init(uint8_t pin); +void PulseCounter_Init(uint8_t pin); void PulseCounter_Tick(); diff --git a/software/Firmware/Src/ApplicationBuilder.c b/software/Firmware/Src/ApplicationBuilder.c index fd3d5ac..0c5c156 100755 --- a/software/Firmware/Src/ApplicationBuilder.c +++ b/software/Firmware/Src/ApplicationBuilder.c @@ -6,14 +6,14 @@ */ #include "ApplicationBuilder.h" - -#include "../Inc/Logger.h" -#include "../Inc/PulseCounter.h" -#include "../Inc/UserInterface.h" #include "PinoutConfiguration.h" +#include "ClockConfigurator.h" +#include "Logger.h" +#include "PulseCounter.h" +#include "UserInterface.h" #include "MCP3425A0T.h" -static MCP3425A0TConfig_t adcConfig[]={{ADC_CHIP_1_PIN}, {ADC_CHIP_2_PIN}}; +static MCP3425A0TConfig_t adcConfig[]={{PIN_ADC_CHIP_1}, {PIN_ADC_CHIP_2}}; void ApplicationBuilder_Init() @@ -25,8 +25,10 @@ void ApplicationBuilder_Init() MCP3425A0T_Init(&adcConfig[i]); }*/ + ClockConfigurator_Init(); + Logger_Init(); - PulseCounter_Init(PEAK_DETECTOR_PIN); + PulseCounter_Init(PIN_PULSE_COUNTER); UserInterface_Init(); diff --git a/software/Firmware/Src/ClockConfigurator.c b/software/Firmware/Src/ClockConfigurator.c new file mode 100755 index 0000000..7f31455 --- /dev/null +++ b/software/Firmware/Src/ClockConfigurator.c @@ -0,0 +1,35 @@ +/* + * ClockConfigurator.c + * + * Created on: 03.07.2019 + * Author: robert + */ + +#include "ClockConfigurator.h" +#include "stm8s_clk.h" + +void ClockConfigurator_Init() +{ + CLK_DeInit(); + + CLK_HSECmd(DISABLE); + CLK_LSICmd(DISABLE); + CLK_HSICmd(ENABLE); + while(CLK_GetFlagStatus(CLK_FLAG_HSIRDY) == FALSE); + + CLK_ClockSwitchCmd(ENABLE); + CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV8); + CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1); + + CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSI, + DISABLE, CLK_CURRENTCLOCKSTATE_ENABLE); + + // CLK_PeripheralClockConfig(CLK_PERIPHERAL_I2C, DISABLE); + // CLK_PeripheralClockConfig(CLK_PERIPHERAL_SPI, DISABLE); + // CLK_PeripheralClockConfig(CLK_PERIPHERAL_ADC, DISABLE); + CLK_PeripheralClockConfig(CLK_PERIPHERAL_AWU, DISABLE); + CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART1, ENABLE); + CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER1, DISABLE); + CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER2, DISABLE); + CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER4, DISABLE); +} diff --git a/software/Firmware/Src/Logger.c b/software/Firmware/Src/Logger.c index 8038030..d95661f 100755 --- a/software/Firmware/Src/Logger.c +++ b/software/Firmware/Src/Logger.c @@ -5,86 +5,54 @@ * Author: robert */ -#include "../Inc/Logger.h" - +#include "Logger.h" +#include #include "stm8s_uart1.h" -#include "stm8s_clk.h" - - -void clock_setup(void) -{ - CLK_DeInit(); - - CLK_HSECmd(DISABLE); - CLK_LSICmd(DISABLE); - CLK_HSICmd(ENABLE); - while(CLK_GetFlagStatus(CLK_FLAG_HSIRDY) == FALSE); - - CLK_ClockSwitchCmd(ENABLE); - CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV8); - CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1); - - CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSI, - DISABLE, CLK_CURRENTCLOCKSTATE_ENABLE); - -// CLK_PeripheralClockConfig(CLK_PERIPHERAL_I2C, DISABLE); -// CLK_PeripheralClockConfig(CLK_PERIPHERAL_SPI, DISABLE); -// CLK_PeripheralClockConfig(CLK_PERIPHERAL_ADC, DISABLE); - CLK_PeripheralClockConfig(CLK_PERIPHERAL_AWU, DISABLE); - CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART1, ENABLE); - CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER1, DISABLE); - CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER2, DISABLE); - CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER4, DISABLE); -} void GPIO_setup(void) { - GPIO_DeInit(GPIOD); + // TODO: magic numbers + GPIO_DeInit(GPIOD); - GPIO_Init(GPIOD, GPIO_PIN_5, GPIO_MODE_OUT_PP_HIGH_FAST); - GPIO_Init(GPIOD, GPIO_PIN_6, GPIO_MODE_IN_PU_NO_IT); + GPIO_Init(GPIOD, GPIO_PIN_5, GPIO_MODE_OUT_PP_HIGH_FAST); + GPIO_Init(GPIOD, GPIO_PIN_6, GPIO_MODE_IN_PU_NO_IT); } void UART1_setup(void) { - UART1_DeInit(); + // TODO: magic numbers + UART1_DeInit(); - UART1_Init(9600, - UART1_WORDLENGTH_8D, - UART1_STOPBITS_1, - UART1_PARITY_NO, - UART1_SYNCMODE_CLOCK_DISABLE, - UART1_MODE_TXRX_ENABLE); + UART1_Init(9600, + UART1_WORDLENGTH_8D, + UART1_STOPBITS_1, + UART1_PARITY_NO, + UART1_SYNCMODE_CLOCK_DISABLE, + UART1_MODE_TXRX_ENABLE); - UART1_Cmd(ENABLE); + UART1_Cmd(ENABLE); } - void Logger_Init() { - clock_setup(); GPIO_setup(); UART1_setup(); } + void Logger_Tick() { - // if(UART1_GetFlagStatus(UART1_FLAG_RXNE) == TRUE) - { - // ch = UART1_ReceiveData8(); - UART1_ClearFlag(UART1_FLAG_RXNE); - UART1_SendData8('r'); - UART1_SendData8('o'); - UART1_SendData8('b'); - UART1_SendData8('e'); - UART1_SendData8('r'); - UART1_SendData8('t'); - } - - if(UART1_GetFlagStatus(UART1_FLAG_TXE) == FALSE) - { - } + printf ("success"); +} + + +void putchar(char c) +{ + /* Write a character to the UART1 */ + UART1_SendData8(c); + /* Loop until the end of transmission */ + while (UART1_GetFlagStatus(UART1_FLAG_TXE) == RESET); } diff --git a/software/Firmware/Src/PulseCounter.c b/software/Firmware/Src/PulseCounter.c index 6881ff8..30bdeda 100755 --- a/software/Firmware/Src/PulseCounter.c +++ b/software/Firmware/Src/PulseCounter.c @@ -5,9 +5,9 @@ * Author: robert */ -#include "../Inc/PulseCounter.h" +#include "PulseCounter.h" -bool PulseCounter_Init(uint8_t pin) +void PulseCounter_Init(uint8_t pin) { } diff --git a/software/Firmware/Src/UserInterface.c b/software/Firmware/Src/UserInterface.c index e5cfa88..4f41297 100755 --- a/software/Firmware/Src/UserInterface.c +++ b/software/Firmware/Src/UserInterface.c @@ -5,14 +5,14 @@ * Author: robert */ -#include "../Inc/UserInterface.h" +#include "UserInterface.h" #include "PinoutConfiguration.h" void UserInterface_Init() { - GPIO_Init(LED_GPIO_PORT, (LED_GREEN_GPIO_PIN | LED_RED_GPIO_PIN), GPIO_MODE_OUT_PP_LOW_SLOW); - GPIO_WriteLow(LED_GPIO_PORT, (LED_GREEN_GPIO_PIN | LED_RED_GPIO_PIN)); + GPIO_Init(PORT_GPIO_LED, (PIN_GPIO_LED_GREEN | PIN_GPIO_LED_RED), GPIO_MODE_OUT_PP_LOW_SLOW); + GPIO_WriteLow(PORT_GPIO_LED, (PIN_GPIO_LED_GREEN | PIN_GPIO_LED_RED)); } void UserInterface_ShowMessage(GUI_Status status) @@ -21,12 +21,12 @@ void UserInterface_ShowMessage(GUI_Status status) { case GUI_FAULT_MSG: { - GPIO_WriteHigh(LED_GPIO_PORT, LED_RED_GPIO_PIN); + GPIO_WriteHigh(PORT_GPIO_LED, PIN_GPIO_LED_RED); break; } case GUI_INFO_MSG: { - GPIO_WriteHigh(LED_GPIO_PORT, LED_GREEN_GPIO_PIN); + GPIO_WriteHigh(PORT_GPIO_LED, PIN_GPIO_LED_GREEN); break; } } diff --git a/software/Firmware/makefile b/software/Firmware/makefile index d9cb6ac..6935b52 100755 --- a/software/Firmware/makefile +++ b/software/Firmware/makefile @@ -54,6 +54,9 @@ $(BUILD_DIR)/stm8s_it.rel: $(CC) -c $(CFLAGS) $(LDFLAGS) -o $(BUILD_DIR)/ $(STDLIB)/src/stm8s_i2c.rel $(STDLIB)/src/stm8s_i2c.c $(CC) -c $(CFLAGS) $(LDFLAGS) -o $(BUILD_DIR)/ -o Build/ "Src/stm8s_it.rel" "Src/stm8s_it.c" +$(BUILD_DIR)/ClockConfigurator.rel: $(SRCS)/ClockConfigurator.c + $(CC) -c $(CFLAGS) $(LDFLAGS) -o $(BUILD_DIR)/ $(SRCS)/ClockConfigurator.rel $(SRCS)/ClockConfigurator.c + $(BUILD_DIR)/MCP3425A0T.rel: $(SRCS)/MCP3425A0T.c $(CC) -c $(CFLAGS) $(LDFLAGS) -o $(BUILD_DIR)/ $(SRCS)/MCP3425A0T.rel $(SRCS)/MCP3425A0T.c @@ -74,9 +77,9 @@ $(BUILD_DIR)/ApplicationBuilder.rel: $(SRCS)/ApplicationBuilder.c $(BUILD_DIR)/M -$(IHX): $(SRCS)/$(TARGET).c $(BUILD_DIR)/ApplicationBuilder.rel $(BUILD_DIR)/stm8s_gpio.rel $(BUILD_DIR)/stm8s_it.rel $(BUILD_DIR)/stm8s_uart1.rel $(BUILD_DIR)/stm8s_clk.rel +$(IHX): $(SRCS)/$(TARGET).c $(BUILD_DIR)/ApplicationBuilder.rel $(BUILD_DIR)/stm8s_gpio.rel $(BUILD_DIR)/stm8s_it.rel $(BUILD_DIR)/stm8s_uart1.rel $(BUILD_DIR)/stm8s_clk.rel $(BUILD_DIR)/ClockConfigurator.rel mkdir -p $(BUILD_DIR) - $(CC) $(CFLAGS) $(LDFLAGS) -o $(BUILD_DIR)/ $< $(BUILD_DIR)/stm8s_gpio.rel $(BUILD_DIR)/stm8s_it.rel $(BUILD_DIR)/MCP3425A0T.rel $(BUILD_DIR)/ApplicationBuilder.rel $(BUILD_DIR)/PulseCounter.rel $(BUILD_DIR)/Logger.rel $(BUILD_DIR)/UserInterface.rel $(BUILD_DIR)/stm8s_uart1.rel $(BUILD_DIR)/stm8s_clk.rel + $(CC) $(CFLAGS) $(LDFLAGS) -o $(BUILD_DIR)/ $< $(BUILD_DIR)/stm8s_gpio.rel $(BUILD_DIR)/stm8s_it.rel $(BUILD_DIR)/MCP3425A0T.rel $(BUILD_DIR)/ApplicationBuilder.rel $(BUILD_DIR)/PulseCounter.rel $(BUILD_DIR)/Logger.rel $(BUILD_DIR)/UserInterface.rel $(BUILD_DIR)/stm8s_uart1.rel $(BUILD_DIR)/stm8s_clk.rel $(BUILD_DIR)/ClockConfigurator.rel $(SIZE) $@