Merge pull request #92 from RobertGawron/feature/basic_sw_components_implementation

fixes #86
pull/94/head
Robert 2019-07-27 15:54:24 +02:00 zatwierdzone przez GitHub
commit 0b67153cea
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
2 zmienionych plików z 38 dodań i 29 usunięć

Wyświetl plik

@ -17,7 +17,7 @@
void ApplicationBuilder_Init() void ApplicationBuilder_Init()
{ {
// ClockConfigurator_Init(); ClockConfigurator_Init();
TimerConfigurator_Init(); TimerConfigurator_Init();
Logger_Init(); Logger_Init();
@ -42,7 +42,6 @@ void ApplicationBuilder_Run()
void ApplicationBuilder_Tick() void ApplicationBuilder_Tick()
{ {
// Logger_Tick(); //Logger_Tick();
VoltageSensorActualValue_GeMeasurementData(0);
VoltageSensorActualValue_GeMeasurementData(0);
} }

Wyświetl plik

@ -11,13 +11,18 @@
#include "stm8s_i2c.h" #include "stm8s_i2c.h"
#include "stm8s.h" #include "stm8s.h"
#define I2C_ADDRESS 0x68 // MCP3425 I2C address is 0x68(104) #define I2C_OWN_ADDRESS 0x10
#define I2C_SLAVE_ADDRESS 0x68 // MCP3425 I2C address is 0x68(104)
static void GPIO_setup(void); static void GPIO_setup(void);
static void I2C_setup(void);
void VoltageSensorActualValue_Init() void VoltageSensorActualValue_Init()
{ {
#if 0
CLK_DeInit(); CLK_DeInit();
CLK_HSECmd(DISABLE); CLK_HSECmd(DISABLE);
@ -41,49 +46,54 @@ void VoltageSensorActualValue_Init()
CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER1, ENABLE); CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER1, ENABLE);
CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER2, DISABLE); CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER2, DISABLE);
CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER4, DISABLE); CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER4, DISABLE);
#endif
GPIO_Init(GPIOB, GPIO_PIN_4, GPIO_MODE_OUT_OD_HIZ_FAST); GPIO_setup();
GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_OD_HIZ_FAST); I2C_setup();
I2C_DeInit();
I2C_Init(100000,
I2C_ADDRESS,
I2C_DUTYCYCLE_2,
I2C_ACK_CURR,
I2C_ADDMODE_7BIT,
(CLK_GetClockFreq() / 1000000));
I2C_Cmd(ENABLE);
} }
bool VoltageSensorActualValue_GeMeasurementData(VoltageSensorActualValue_MeasurementData_t *measurementData) bool VoltageSensorActualValue_GeMeasurementData(VoltageSensorActualValue_MeasurementData_t *measurementData)
{ {
// printf("a\r\n");
I2C_GenerateSTART(ENABLE); I2C_GenerateSTART(ENABLE);
while(!I2C_CheckEvent(I2C_EVENT_MASTER_MODE_SELECT)); while(!I2C_CheckEvent(I2C_EVENT_MASTER_MODE_SELECT));
UserInterface_ShowMessage(USER_INTERFACE_COLLECTING_DATA_MSG); I2C_Send7bitAddress(I2C_SLAVE_ADDRESS, I2C_DIRECTION_TX);
//while(!I2C_CheckEvent(I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
I2C_Send7bitAddress(I2C_ADDRESS, I2C_DIRECTION_TX);
while(!I2C_CheckEvent(I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
I2C_SendData(1); I2C_SendData(0xf);
while(!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED)); //while(!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED));
I2C_GenerateSTOP(ENABLE); I2C_GenerateSTOP(ENABLE);
while(I2C_GetFlagStatus(I2C_FLAG_BUSBUSY));
// while(I2C_GetFlagStatus(I2C_FLAG_BUSBUSY));
//printf("b\r\n"); // for temporary debug only
UserInterface_ShowMessage(USER_INTERFACE_COLLECTING_DATA_MSG);
return TRUE; return TRUE;
} }
void GPIO_setup(void) void GPIO_setup(void)
{ {
// TODO magic numbers
GPIO_Init(GPIOB, GPIO_PIN_4, GPIO_MODE_OUT_OD_HIZ_FAST); GPIO_Init(GPIOB, GPIO_PIN_4, GPIO_MODE_OUT_OD_HIZ_FAST);
GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_OD_HIZ_FAST); GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_OD_HIZ_FAST);
} }
void I2C_setup(void)
{
I2C_DeInit();
I2C_Init(100000,
I2C_OWN_ADDRESS,
I2C_DUTYCYCLE_2,
I2C_ACK_CURR,
I2C_ADDMODE_7BIT,
(CLK_GetClockFreq() / 1000000));
I2C_Cmd(ENABLE);
}