FreeEMS  0.2.0-SNAPSHOT-282-g9efc524
Macros | Functions
simpleGPIO.c File Reference

Simple GPIO functionality. More...

#include "inc/freeEMS.h"
#include "inc/interrupts.h"
#include "inc/simpleGPIO.h"
Include dependency graph for simpleGPIO.c:

Go to the source code of this file.

Macros

#define SIMPLE_GPIO_C

Functions

void performSimpleGPIO ()
 Perform GP outputs based on values of assigned variables.

Detailed Description

Simple GPIO functionality.

Code for handling low frequency bit-bang switching of general pins based on the value of internal variables lives in this file.

Definition in file simpleGPIO.c.

Macro Definition Documentation

#define SIMPLE_GPIO_C

Definition at line 36 of file simpleGPIO.c.

Function Documentation

void performSimpleGPIO ( void  )

Perform GP outputs based on values of assigned variables.

Compare upper and lower thresholds with the value of the selected variable and switch on or off as appropriate. Atomic blocks ensure no concurrency issues with current ECT.

Definition at line 47 of file simpleGPIO.c.

References ATOMIC_END, ATOMIC_START, fixedConfigs1, singleSimpleGPOutput::flags, singleSimpleGPOutput::lowerValue, singleSimpleGPOutput::mask, NUMBER_OF_OUTPUT_CONFIGS, simpleGPIOSetting::numberConfigured, simpleGPIOSetting::outputConfigs, singleSimpleGPOutput::port, fixedConfig1::simpleGPIOSettings, singleSimpleGPOutput::upperValue, and singleSimpleGPOutput::variable.

Referenced by main().

{
unsigned char i;
ATOMIC_START(); /*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
ATOMIC_END(); /*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
}else{
ATOMIC_START(); /*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
ATOMIC_END(); /*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
}
ATOMIC_START(); /*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
ATOMIC_END(); /*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
}else{
ATOMIC_START(); /*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
ATOMIC_END(); /*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
}
} // Do nothing if in hysteresis region
}
}

Here is the caller graph for this function: