Digital Power Starter Kit 3 Firmware
dsPIC33C Boost Converter Voltage Mode Control Example
dev_boost_opstates.h
1 
32 /*
33  * File: dev_boost_opstates.h
34  * Author: M91406
35  * Comments: Boost converter operation states header file
36  * Revision history:
37  * 10/09/20 1.0 initial version
38  */
39 
40 // This is a guard condition so that contents of this file are not included
41 // more than once.
42 #ifndef BOOST_CONVERTER_OPERATION_STATES_H
43 #define BOOST_CONVERTER_OPERATION_STATES_H
44 
45 #include <xc.h> // include processor files - each processor file is guarded.
46 #include <stdint.h> // include standard integer data types
47 #include <stdbool.h> // include standard boolean data types
48 
49 /*******************************************************************************
50  * @var volatile uint16_t(*BoostConverterStateMachine[])(volatile struct BOOST_CONVERTER_s *boostInstance)
51  * @ingroup lib-layer-boost-state-machine-properties-variables
52  * @brief Function pointer array defining the state machine execution sequence
53  * @details
54  * The function pointer list BoostConverterStateMachine[] is providing
55  * access to a list of state functions. Each function mapped into this array
56  * as function pointer represents a self-contained, independent sub-state.
57  * The main state machine will call functions from this list in order of their
58  * index within the array, starting from '0'. While this list is executed, the
59  * calling main state is transparent by passing through the return value of the
60  * most recent sub-state. Once all sub-states have been executed, the calling main
61  * state will return the COMPLETE flag, allowing the main state machine to move on.
62  *
63  * Each function needs to be called by handing over a parameter of type
64  *
65  * - struct BOOST_CONVERTER_s
66  *
67  * Each function returns of type unsigned integer:
68  *
69  * - 0 = BOOST_OPSRET_ERROR
70  * - 1 = BOOST_OPSRET_COMPLETE
71  * - 2 = BOOST_OPSRET_REPEAT
72  *
73  **********************************************************************************/
74 
75 extern volatile uint16_t (*BoostConverterStateMachine[])
76  (volatile struct BOOST_CONVERTER_s *boostInstance);
77 
78 /*******************************************************************************
79  * @var volatile uint16_t BoostStateList_size
80  * @ingroup lib-layer-boost-state-machine-properties-variables
81  * @brief Boost converter state machine function pointer array size
82  *********************************************************************************/
83 
84 extern volatile uint16_t BoostStateList_size;
85 
86 
87 #endif /* BOOST_CONVERTER_OPERATION_STATES_H */
88 
89 // END OF FILE
BOOST control & monitoring data structure.