Add init state before entering state machine loop.

This commit is contained in:
Marco 2022-06-28 03:59:06 +02:00
parent 3be047d2e4
commit 76ac461516
2 changed files with 21 additions and 1 deletions

View File

@ -9,6 +9,16 @@ bdg_sm_state_t bridge_state;
sm_trans_t bridge_sm_transitions[] = sm_trans_t bridge_sm_transitions[] =
{ {
{
.from_state = BRIDGE_SM_START,
.to_state = BRIDGE_SM_INIT_IO,
.trans_fct = brdg_BothGndOn
},
{
.from_state = BRIDGE_SM_INIT_IO,
.to_state = HB1_PWR_ON,
.trans_fct = brdg_Hb1PowerOn
},
{ {
.from_state = HB1_GND_ON, .from_state = HB1_GND_ON,
.to_state = HB1_PWR_ON, .to_state = HB1_PWR_ON,
@ -42,10 +52,16 @@ sm_trans_t bridge_sm_transitions[] =
}; };
sm_t bridge_statemachine = { sm_t bridge_statemachine = {
.current_state = HB1_PWR_OFF, .current_state = BRIDGE_SM_START,
.transitions = bridge_sm_transitions .transitions = bridge_sm_transitions
}; };
void brdg_BothGndOn(void)
{
setPin(&PORTB, PB6);
setPin(&PORTB, PB4);
}
void brdg_Hb1GndOn(void) void brdg_Hb1GndOn(void)
{ {
/* We turn GND of half-bridge 1 on */ /* We turn GND of half-bridge 1 on */

View File

@ -1,5 +1,7 @@
typedef enum typedef enum
{ {
BRIDGE_SM_START,
BRIDGE_SM_INIT_IO,
HB1_GND_ON, HB1_GND_ON,
HB1_PWR_ON, HB1_PWR_ON,
HB1_PWR_OFF, HB1_PWR_OFF,
@ -9,6 +11,8 @@ typedef enum
} bdg_sm_state_t; } bdg_sm_state_t;
void brdg_BothGndOn(void);
void brdg_Hb1GndOn(void); void brdg_Hb1GndOn(void);
void brdg_Hb1PowerOn(void); void brdg_Hb1PowerOn(void);
void brdg_Hb1PowerOff(void); void brdg_Hb1PowerOff(void);