rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
io_pins.h
Go to the documentation of this file.
1/**
2 * @file io_pins.h
3 * @brief this file is about general input/output utility methods, not much EFI-specifics
4 *
5 * @date Jan 24, 2013
6 * @author Andrey Belomutskiy, (c) 2012-2020
7 */
8
9#pragma once
10
11#include "global.h"
12
13#define INITIAL_PIN_STATE -1
14
15// mode >= 0 is always true since that's an unsigned
16#define assertOMode(mode) { \
17 efiAssertVoid(ObdCode::CUSTOM_INVALID_MODE_SETTING, mode <= OM_OPENDRAIN_INVERTED, "invalid pin_output_mode_e"); \
18 }
19
20#define efiSetPadModeIfConfigurationChanged(msg, pin, mode) \
21 if (isConfigurationChanged(pin)) { \
22 efiSetPadMode(msg, engineConfiguration->pin, mode); \
23 }
24
25#define efiSetPadUnusedIfConfigurationChanged(pin) \
26 if (isConfigurationChanged(pin)) { \
27 efiSetPadUnused(activeConfiguration.pin); \
28 }
29
30void efiSetPadMode(const char *msg, brain_pin_e pin, iomode_t mode);
31void efiSetPadModeWithoutOwnershipAcquisition(const char *msg, brain_pin_e brainPin, iomode_t mode);
32void efiSetPadUnused(brain_pin_e brainPin);
33
34#if EFI_GPIO_HARDWARE
38
40
41#endif /* EFI_GPIO_HARDWARE */
42
43void writePad(const char *msg, brain_pin_e pin, int bit);
44
45#if ! EFI_PROD_CODE
46#define BRAIN_PIN_COUNT (1 << 8 * sizeof(brain_pin_e))
47extern bool mockPinStates[BRAIN_PIN_COUNT];
48
50#endif
uint32_t iomode_t
Digital I/O modes.
Definition hal_pal_lld.h:83
void efiSetPadMode(const char *msg, brain_pin_e pin, iomode_t mode)
iomode_t getInputMode(pin_input_mode_e mode)
Definition io_pins.cpp:103
bool efiIsInputPinInverted(pin_input_mode_e mode)
Definition io_pins.cpp:138
bool efiReadPin(brain_pin_e pin)
Definition io_pins.cpp:89
bool mockPinStates[BRAIN_PIN_COUNT]
Definition io_pins.cpp:126
void efiSetPadUnused(brain_pin_e brainPin)
Definition io_pins.cpp:20
void setMockState(brain_pin_e pin, bool state)
Definition io_pins.cpp:132
void efiSetPadModeWithoutOwnershipAcquisition(const char *msg, brain_pin_e brainPin, iomode_t mode)
Definition io_pins.cpp:61
void writePad(const char *msg, brain_pin_e pin, int bit)
Definition io_pins.cpp:118
pin_input_mode_e
state("state", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 1871, 1.0, -1.0, -1.0, "")
brain_pin_e pin
Definition stm32_adc.cpp:15