#include #include "pinout.h" #include "addon_io.h" static const uint32_t OUTPUT_LIST[2] = {ADDON_ISO_IO_OUT1, ADDON_ISO_IO_OUT2}; void addon_io_init(void) { // Isolated outputs configuration: output, initially low = off gpio_clear(ADDON_ISO_IO_PORT, ADDON_ISO_IO_OUT1 | ADDON_ISO_IO_OUT2); gpio_mode_setup(ADDON_ISO_IO_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, ADDON_ISO_IO_OUT1 | ADDON_ISO_IO_OUT2); // Isolated inputs configuration: input, no pull resistors gpio_mode_setup(ADDON_ISO_IO_PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, ADDON_ISO_IO_IN); } void addon_io_iso_out_on(uint8_t idx) { gpio_set(ADDON_ISO_IO_PORT, OUTPUT_LIST[idx]); } void addon_io_iso_out_off(uint8_t idx) { gpio_clear(ADDON_ISO_IO_PORT, OUTPUT_LIST[idx]); } bool addon_io_read_iso_in(void) { return gpio_get(ADDON_ISO_IO_PORT, ADDON_ISO_IO_IN) != 0; }