introduce display muxer

This commit is contained in:
hg
2016-09-05 12:05:03 +02:00
parent 0b6ab872de
commit 932f82ef64
5 changed files with 82 additions and 4 deletions

49
src/displayMuxer.c Normal file
View 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;
}