introduce display muxer
This commit is contained in:
49
src/displayMuxer.c
Normal file
49
src/displayMuxer.c
Normal file
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* displayMuxer.c
|
||||
*
|
||||
* Created on: 05.09.2016
|
||||
* Author: wn
|
||||
*/
|
||||
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "displayMuxer.h"
|
||||
#include "display.h"
|
||||
|
||||
|
||||
typedef struct {
|
||||
uint8_t value;
|
||||
bool valid;
|
||||
} tDisplayValue;
|
||||
|
||||
tDisplayValue displayValues[MUX_ENDS];
|
||||
|
||||
|
||||
void displayMuxerInit(void *handleArg) {
|
||||
for (tMuxerSlot i = FIRST_MUX; i < MUX_ENDS; i++) {
|
||||
displayValues[i].value = 0;
|
||||
displayValues[i].valid = false;
|
||||
}
|
||||
}
|
||||
|
||||
void displayMuxerExec(void *handleArg) {
|
||||
static tMuxerSlot slot = FIRST_MUX;
|
||||
|
||||
if (displayValues[slot].valid) {
|
||||
displaySetValue(displayValues[slot].value);
|
||||
}
|
||||
|
||||
slot++;
|
||||
if (slot == MUX_ENDS) {
|
||||
slot = FIRST_MUX;
|
||||
}
|
||||
}
|
||||
|
||||
void displayMuxerSetValue(uint8_t value, bool valid, tMuxerSlot slot) {
|
||||
displayValues[slot].value = value;
|
||||
displayValues[slot].valid = valid;
|
||||
}
|
||||
|
Reference in New Issue
Block a user