Skip to content

Instantly share code, notes, and snippets.

void stateIdle();
void stateCrushBean();
void stateHeatMilk();
void stateMixWater();
void stateDispenseCofee();
void stateError();  
void stateCrushBean(void)
{
if(bIsStateFirstEntry)
typedef enum eState {
EVT_BUTTON_PRESSED,
EVT_BEAN_CRUSHED,
EVT_WATER_MIXED,
STATE_MIX_WATER,
STATE_DISPENSE_COFEE,
EVT_ERROR_NOTIFIED
} eState;
stStmRow stStm = {
{stateIdle     , EVT_BUTTON_PRESSED, stateCrushBean },
{stateCrushBean, EVT_BEAN_CRUSHED , stateHeatMilk },
{stateCrushBean, EVT_NO_BEAN       , stateError     },
{stateHeatMilk , EVT_MILK_HEATED   , stateMixWater },
{stateHeatMilk , EVT_NO_MILK       , stateError     },
{stateMixWater , EVT_WATER_MIXED   , stateDispenseCofee},
{stateMixWater , EVT_NO_WATER     , stateError     }
};
void StateMachineHandler()
{
int idx = 0;
if(EVT_NO_EVENT != eCurrentEvent)
{
for(;idx < sizeof(stStm)/sizeof(stStmRow); idx++)
{
if( (stStm[idx].pSrcState == stCurrentState) &&
(stStm[idx].eEvt == eCurrentEvent))
{
#include "stdio.h"
typedef void (*ptStateFunc)(void);
/// Define all events
typedef enum eEvent {
EVT_NO_EVENT,
EVT_BUTTON_PRESSED,
EVT_BEAN_CRUSHED,
EVT_MILK_HEATED,
@dheeptuck
dheeptuck / sp800_results.csv
Last active October 28, 2019 16:51
Tables in medium
Test Name P-Value Status
monobit_test 0.323382809013 PASS
frequency_within_block_test 0.438787706963 PASS
runs_test 0.662321968913 PASS
longest_run_ones_in_a_block_test 0.0732778344642 PASS
binary_matrix_rank_test 0.751087894492 PASS
dft_test 0.653862901226 PASS
non_overlapping_template_matching_test 1.00000018173 PASS
overlapping_template_matching_test 0.10066003874 PASS
maurers_universal_test 0.568838019321 PASS
/* Creating a non initialized RAM section: */
 .noinit (NOLOAD):
 {
 KEEP(*(.noinit)) /* keep my variable even if not referenced */
 } > RAM
volatile uint8_t au8Arr[1024] __attribute__((section (".noinit")));
While(1)
{
if(GetTimeSinceLastOn() ≥ 30)
{
TurnPumpOn();
}
if(GetTimeSinceLastToggle() ≥ 5)
{
ToggleLights();
}
void PumpTask()
{
while(1)
{
if(GetTimeSinceLastToggle() ≥ 30)
{
TurnPumpOn();
}
}
}