uart used as printf output

pull/61/head
RobertGawron 2019-07-03 18:24:45 +01:00
rodzic 277cc04708
commit d55263a18c
10 zmienionych plików z 106 dodań i 80 usunięć

Wyświetl plik

@ -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_ */

Wyświetl plik

@ -14,4 +14,8 @@ void Logger_Init();
void Logger_Tick();
// used to redirect printf to UART
void putchar(char c);
#endif /* INC_LOGGER_H_ */

Wyświetl plik

@ -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_ */

Wyświetl plik

@ -10,7 +10,7 @@
#include "CommonDataTypes.h"
bool PulseCounter_Init(uint8_t pin);
void PulseCounter_Init(uint8_t pin);
void PulseCounter_Tick();

Wyświetl plik

@ -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();

Wyświetl plik

@ -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);
}

Wyświetl plik

@ -5,86 +5,54 @@
* Author: robert
*/
#include "../Inc/Logger.h"
#include "Logger.h"
#include <stdio.h>
#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);
}

Wyświetl plik

@ -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)
{
}

Wyświetl plik

@ -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;
}
}

Wyświetl plik

@ -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) $@