50 lines
826 B
C
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;
|
|
}
|
|
|