-
fortissBot authored
refs 7890
fortissBot authoredrefs 7890
GPIO.c 1.01 KiB
#include "inc/GPIO.h"
// init, term
GEN_TYPE_boolean gpio_initialized = false;
GEN_TYPE_boolean gpio_terminated = false;
void gpio_init(GPIO_PIN_T pin) {
// important, since all pins are accessing the same method
if(gpio_initialized) return;
if(wiringPiSetup() == -1) {
perror("cannot setup wiring pi\n");
return;
}
gpio_initialized = true;
}
void gpio_init_in(GPIO_PIN_T pin) {
gpio_init(pin);
pinMode(pin, INPUT);
}
void gpio_init_out(GPIO_PIN_T pin) {
gpio_init(pin);
pinMode(pin, OUTPUT);
}
void gpio_term(GPIO_PIN_T pin) {
// important, since all pins are accessing the same method
if(gpio_terminated) return;
gpio_terminated = false;
}
// noval
GEN_TYPE_boolean gpio_is_noval(GPIO_PIN_T pin) {
return false;
}
void gpio_set_noval(GPIO_PIN_T pin) {
// do nothing
}
// readers
GEN_TYPE_boolean gpio_read(GPIO_PIN_T pin) {
return digitalRead(pin);
}
// writers
void gpio_write(GPIO_PIN_T pin, GEN_TYPE_boolean value) {
digitalWrite(pin, value);
}