todo pincfg

dev_pinconfig
unicod 20 hours ago
parent 4114779445
commit 17e13de007

@ -2,10 +2,11 @@
#define __PINCFG_H__ #define __PINCFG_H__
typedef enum: uint8_t { typedef enum: uint8_t {
PIN_MODE_DIG_IN, PIN_MODE_DIG_IN = 0,
PIN_MODE_ANA_IN, PIN_MODE_ANA_IN,
PIN_MODE_DIG_OUT, PIN_MODE_DIG_OUT,
PIN_MODE_ANA_OUT PIN_MODE_ANA_OUT,
PIN_MODE_UNUSED = 0xFF
} PIN_MODES; } PIN_MODES;
typedef enum: uint8_t { typedef enum: uint8_t {
@ -13,11 +14,55 @@ typedef enum: uint8_t {
PULLUP_ON PULLUP_ON
} PULLUP_MODES; } PULLUP_MODES;
typedef enum: uint8_t {
EDGE_RISING,
EDGE_FALLING
} EDGE_POLARITY;
typedef enum: uint8_t {
MIDI_CMD_SNAPSHOT = 0, // call snapshot
MIDI_CMD_FADER_ABS, // direct set fader value
MIDI_CMD_FADER_REL, // inc/dec fader value
MIDI_CMD_MUTE, // direct set mute state
MIDI_CMD_MUTE_TOGGLE, // toggle mute state
MIDI_CMD_PAN, // direct set panorama
MIDI_CMD_NONE = 0xFF // no command assigned
} MIDI_CMD_TYPES;
struct MidiSelVal {
uint8_t chsel; // control element select (channel ID)
uint8_t val; // value of control element
};
struct MidiFaderRel {
uint8_t chsel; // fader chan ID
int8_t step; // step size (neg:downward, pos:upward)
uint8_t min; // lowest fader value
uint8_t max; // highest fader value
};
struct MidiMute {
uint8_t chsel; // mute chan ID
uint8_t edgecfg; // -1:
};
union MidiCmdCfg {
uint8_t Snapshot;
MidiSelVal FaderAbs;
MidiSelVal Mute;
MidiSelVal Pan;
MidiFaderRel FaderRel;
MidiMuteToggle MuteToggle;
};
struct PinCfg { struct PinCfg {
uint8_t PinSel;
PIN_MODES Mode; PIN_MODES Mode;
union { union {
struct { struct {
PULLUP_MODES Pullup; PULLUP_MODES Pullup;
MIDI_CMD_TYPES MidiCmd;
} CfgDigIn; } CfgDigIn;
struct { struct {
uint8_t todo; uint8_t todo;

Loading…
Cancel
Save