multithreaded app
This commit is contained in:
32
RpiLedBars/src/drivers/selector/rpi_selector.c
Normal file
32
RpiLedBars/src/drivers/selector/rpi_selector.c
Normal file
@@ -0,0 +1,32 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <wiringPi.h>
|
||||
|
||||
unsigned const selectorPinNumber = 4;
|
||||
int selectorPins[4] = {5, 6, 26, 27};
|
||||
|
||||
void setup_selector() {
|
||||
wiringPiSetupGpio();
|
||||
|
||||
for (size_t i = 0; i < selectorPinNumber; ++i) {
|
||||
pinMode(selectorPins[i], INPUT);
|
||||
pullUpDnControl(selectorPins[i], PUD_DOWN);
|
||||
}
|
||||
}
|
||||
|
||||
int get_selector_position() {
|
||||
for (size_t i = 0; i < selectorPinNumber; ++i) {
|
||||
if (digitalRead(selectorPins[i])) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
void print_selector() {
|
||||
char modeStr[] = "0 | 0 | 0 | 0 \n";
|
||||
for (size_t i = 0; i < selectorPinNumber; ++i) {
|
||||
modeStr[i * 4] = digitalRead(selectorPins[i]) ? '1' : '0';
|
||||
}
|
||||
printf(modeStr);
|
||||
}
|
10
RpiLedBars/src/drivers/selector/rpi_selector.h
Normal file
10
RpiLedBars/src/drivers/selector/rpi_selector.h
Normal file
@@ -0,0 +1,10 @@
|
||||
#if !defined(__RPI_SELECTOR_H__)
|
||||
#define __RPI_SELECTOR_H__
|
||||
|
||||
void setup_selector();
|
||||
|
||||
int get_selector_position();
|
||||
|
||||
void print_selector();
|
||||
|
||||
#endif /* __RPI_SELECTOR_H__ */
|
Reference in New Issue
Block a user