HARMcksL: ARM HAL toolbox (yet STM32 oriented) 1.6
SMFSW collection of HAL hacks for STM32
Loading...
Searching...
No Matches
Logic_out.h File Reference

Logic output handling. More...

#include "sarmfsw.h"
Include dependency graph for Logic_out.h:
This graph shows which files directly or indirectly include this file:

Data Structures

struct  Logic_out
 Logic output structure. More...
 

Typedefs

typedef enum eLogic_out_mode eLogic_out_mode
 
typedef struct Logic_out Logic_out
 

Enumerations

enum  eLogic_out_mode { outStatic = 0 , outPulse , outBlink }
 Activation state On, Off. More...
 

Functions

eGPIOState get_Logic_out_State (const Logic_out *const out)
 Get Logic_out current output value.
 
eLogic_out_mode get_Logic_out_Mode (const Logic_out *const out)
 Get Logic_out current mode.
 
bool get_Logic_out_Idle (const Logic_out *const out)
 Get Logic_out current status.
 
FctERR Logic_out_init (Logic_out *const out, void(*setter)(const Logic_out *const, const GPIO_PinState), uint32_t *const addr, const uint16_t pos, const GPIO_PinState polarity)
 Initialize Logic_out instance.
 
FctERR Logic_out_Abort (Logic_out *const out)
 Stop Logic_out pulse/blink if running, or abort set if delay not reached.
 
FctERR Logic_out_SetStatic (Logic_out *const out, const eGPIOState action, const uint32_t delay)
 Set Logic_out state.
 
FctERR Logic_out_Set (Logic_out *const out)
 Set Logic_out.
 
FctERR Logic_out_Set_Delayed (Logic_out *const out, const uint32_t delay)
 Set Logic_out.
 
FctERR Logic_out_Reset (Logic_out *const out)
 Reset Logic_out.
 
FctERR Logic_out_Reset_Delayed (Logic_out *const out, const uint32_t delay)
 Reset Logic_out.
 
FctERR Logic_out_StartPulse (Logic_out *const out, const eGPIOState action, const uint32_t delay, const uint32_t active)
 Start Logic_out Pulse.
 
FctERR Logic_out_StartBlink (Logic_out *const out, const eGPIOState action, const uint32_t delay, const uint32_t active, const uint32_t inactive, const uint32_t count)
 Start Logic_out Blink.
 
void Logic_out_handler (Logic_out *const out)
 Handles Logic_out treatment.
 

Detailed Description

Logic output handling.

Author
SMFSW
Note
Define LOGIC_OUT_IT symbol at project level to use Logic_out from timer interrupts (for more timing precision if required)
When using Logic_out from interrupts, LOGIC_OUT_IT_PER period is defined by default with a period of 1000µs (can be customly defined)
Warning
Logic_out & GPIO_out shares interrupt behavior, thus needs to be implemented the same way (it or loop) if both are used at the same time

Typedef Documentation

◆ eLogic_out_mode

◆ Logic_out

typedef struct Logic_out Logic_out

Enumeration Type Documentation

◆ eLogic_out_mode

Activation state On, Off.

Enumerator
outStatic 

Static mode.

outPulse 

Pulse mode (mono-stable)

outBlink 

Blink mode (bi-stable)

Function Documentation

◆ get_Logic_out_Idle()

bool get_Logic_out_Idle ( const Logic_out *const out)
inline

Get Logic_out current status.

Parameters
[in]out- Logic_out instance
Returns
Pin status
Here is the caller graph for this function:

◆ get_Logic_out_Mode()

eLogic_out_mode get_Logic_out_Mode ( const Logic_out *const out)
inline

Get Logic_out current mode.

Parameters
[in]out- Logic_out instance
Returns
Pin mode
Here is the caller graph for this function:

◆ get_Logic_out_State()

eGPIOState get_Logic_out_State ( const Logic_out *const out)
inline

Get Logic_out current output value.

Parameters
[in]out- Logic_out instance
Returns
Pin state
Here is the caller graph for this function:

◆ Logic_out_Abort()

FctERR Logic_out_Abort ( Logic_out *const out)

Stop Logic_out pulse/blink if running, or abort set if delay not reached.

Parameters
[in,out]out- Logic_out instance
Returns
FctERR - Error code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Logic_out_handler()

void Logic_out_handler ( Logic_out *const out)

Handles Logic_out treatment.

Parameters
[in,out]out- Logic_out instance to handle
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Logic_out_init()

FctERR Logic_out_init ( Logic_out *const out,
void(* setter )(const Logic_out *const, const GPIO_PinState),
uint32_t *const addr,
const uint16_t pos,
const GPIO_PinState polarity )

Initialize Logic_out instance.

Parameters
[in,out]out- Logic_out instance to initialize
[in]setter- Logic_out setter function pointer (may be NULL: default behavior for handling RAM variable at address addr)
[in]addr- Variable address to write to (pointer to unsigned 32b, may be NULL if setter handles everything)
[in]pos- Bit position in variable (may be unused if setter function is used)
[in]polarity- set to GPIO_PIN_RESET if active state is low, GPIO_PIN_SET if high
Returns
FctERR - Error code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Logic_out_Reset()

FctERR Logic_out_Reset ( Logic_out *const out)
inline

Reset Logic_out.

Parameters
[in,out]out- Logic_out instance
Returns
FctERR - Error Code
Here is the call graph for this function:

◆ Logic_out_Reset_Delayed()

FctERR Logic_out_Reset_Delayed ( Logic_out *const out,
const uint32_t delay )
inline

Reset Logic_out.

Parameters
[in,out]out- Logic_out instance
[in]delay- delay before writing to port (in ms)
Returns
FctERR - Error Code
Here is the call graph for this function:

◆ Logic_out_Set()

FctERR Logic_out_Set ( Logic_out *const out)
inline

Set Logic_out.

Parameters
[in,out]out- Logic_out instance
Returns
FctERR - Error Code
Here is the call graph for this function:

◆ Logic_out_Set_Delayed()

FctERR Logic_out_Set_Delayed ( Logic_out *const out,
const uint32_t delay )
inline

Set Logic_out.

Parameters
[in,out]out- Logic_out instance
[in]delay- delay before writing to port (in ms)
Returns
FctERR - Error Code
Here is the call graph for this function:

◆ Logic_out_SetStatic()

FctERR Logic_out_SetStatic ( Logic_out *const out,
const eGPIOState action,
const uint32_t delay )

Set Logic_out state.

Parameters
[in,out]out- Logic_out instance
[in]action- action to perform on output port pin (Reset/Set/Toggle)
[in]delay- delay before writing to port (in ms)
Returns
FctERR - Error code
Here is the caller graph for this function:

◆ Logic_out_StartBlink()

FctERR Logic_out_StartBlink ( Logic_out *const out,
const eGPIOState action,
const uint32_t delay,
const uint32_t active,
const uint32_t inactive,
const uint32_t count )

Start Logic_out Blink.

Parameters
[in,out]out- Logic_out instance
[in]action- action to perform on output port pin for active state (Reset/Set/Toggle)
[in]delay- delay before pulse (in ms)
[in]active- blink active time (in ms)
[in]inactive- blink inactive time (in ms)
[in]count- blink count (0 for infinite)
Returns
FctERR - Error code
Here is the caller graph for this function:

◆ Logic_out_StartPulse()

FctERR Logic_out_StartPulse ( Logic_out *const out,
const eGPIOState action,
const uint32_t delay,
const uint32_t active )

Start Logic_out Pulse.

Parameters
[in,out]out- Logic_out instance
[in]action- action to perform on output port pin for active state (Reset/Set/Toggle)
[in]delay- delay before pulse (in ms)
[in]active- pulse time (in ms)
Returns
FctERR - Error code
Here is the caller graph for this function: