Files
TeaThermoTimer/src/displayMuxer.c
2016-09-05 12:05:03 +02:00

50 lines
826 B
C

/*
* 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;
}