diff --git a/software/Firmware/Src/ApplicationBuilder.c b/software/Firmware/Src/ApplicationBuilder.c index a8c6dc8..c0501bd 100755 --- a/software/Firmware/Src/ApplicationBuilder.c +++ b/software/Firmware/Src/ApplicationBuilder.c @@ -17,7 +17,7 @@ void ApplicationBuilder_Init() { - // ClockConfigurator_Init(); + ClockConfigurator_Init(); TimerConfigurator_Init(); Logger_Init(); @@ -42,7 +42,6 @@ void ApplicationBuilder_Run() void ApplicationBuilder_Tick() { -// Logger_Tick(); - -VoltageSensorActualValue_GeMeasurementData(0); + //Logger_Tick(); + VoltageSensorActualValue_GeMeasurementData(0); } diff --git a/software/Firmware/Src/VoltageSensorActualValue.c b/software/Firmware/Src/VoltageSensorActualValue.c index aa1299d..fab100f 100755 --- a/software/Firmware/Src/VoltageSensorActualValue.c +++ b/software/Firmware/Src/VoltageSensorActualValue.c @@ -11,13 +11,18 @@ #include "stm8s_i2c.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 I2C_setup(void); + void VoltageSensorActualValue_Init() { +#if 0 CLK_DeInit(); CLK_HSECmd(DISABLE); @@ -41,49 +46,54 @@ void VoltageSensorActualValue_Init() CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER1, ENABLE); CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER2, DISABLE); CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER4, DISABLE); - - - GPIO_Init(GPIOB, GPIO_PIN_4, GPIO_MODE_OUT_OD_HIZ_FAST); - GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_OD_HIZ_FAST); - - I2C_DeInit(); - I2C_Init(100000, - I2C_ADDRESS, - I2C_DUTYCYCLE_2, - I2C_ACK_CURR, - I2C_ADDMODE_7BIT, - (CLK_GetClockFreq() / 1000000)); - I2C_Cmd(ENABLE); - +#endif + + GPIO_setup(); + I2C_setup(); + } + bool VoltageSensorActualValue_GeMeasurementData(VoltageSensorActualValue_MeasurementData_t *measurementData) { - // printf("a\r\n"); I2C_GenerateSTART(ENABLE); 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); - while(!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED)); + I2C_SendData(0xf); + //while(!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED)); I2C_GenerateSTOP(ENABLE); - - // while(I2C_GetFlagStatus(I2C_FLAG_BUSBUSY)); - //printf("b\r\n"); - + while(I2C_GetFlagStatus(I2C_FLAG_BUSBUSY)); + + // for temporary debug only + UserInterface_ShowMessage(USER_INTERFACE_COLLECTING_DATA_MSG); return TRUE; } + void GPIO_setup(void) { + // TODO magic numbers GPIO_Init(GPIOB, GPIO_PIN_4, 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); +} +