PicoCalc/Code/picocalc_keyboard/port.ino

40 lines
809 B
C++

#include "port.h"
void port_get_config_defaults(struct port_config *const config)
{
/* Default configuration values */
config->direction = PORT_PIN_DIR_INPUT;
config->input_pull = PORT_PIN_PULL_UP;
}
void port_pin_set_config(const uint8_t gpio_pin,const struct port_config *const config)
{
if(config->direction == PORT_PIN_DIR_OUTPUT){
pinMode(gpio_pin,OUTPUT);
return;
}
if(config->direction == PORT_PIN_DIR_INPUT){
if(config->input_pull != PORT_PIN_PULL_NONE){
pinMode(gpio_pin,config->input_pull);
}else{
pinMode(gpio_pin,config->direction);
}
}
}
void port_pin_set_output_level(const uint8_t gpio_pin, const bool level)
{
digitalWrite(gpio_pin,level);
}
bool port_pin_get_input_level(const uint8_t gpio_pin){
return digitalRead(gpio_pin);
}