Přeskočit na hlavní obsah

Jak na: Piny GPIO

S okolním světem propojíte modul Core Module pomocí řady pinů GPIO (General Purpose Input/Output). Piny popisuje stránka Pinout konektorů. V SDK mají názvy TWR_GPIO_P0 až TWR_GPIO_P17. Dva speciální piny jsou navíc vyhrazené pro TWR_GPIO_LED a TWR_GPIO_BUTTON.

Odkazy​

informace

Tento příklad rozsvítí LED na modulu Core Module. Běžnější a pohodlnější je ovládat LED přes twr_led, tady ale kvůli vysvětlení základů GPIO používáme twr_gpio.

Příklad kódu: GPIO jako výstup

#include <application.h>

void application_init(void)
{
twr_gpio_init(TWR_GPIO_LED);
twr_gpio_set_mode(TWR_GPIO_LED, TWR_GPIO_MODE_OUTPUT);
twr_gpio_set_output(TWR_GPIO_LED, 1);
}

informace

Tento příklad přečte stav tlačítka a podle něj LED zapne, nebo vypne.

Příklad kódu: GPIO jako vstup a výstup

#include <application.h>

void application_init(void)
{
twr_gpio_init(TWR_GPIO_LED);
twr_gpio_set_mode(TWR_GPIO_LED, TWR_GPIO_MODE_OUTPUT);

twr_gpio_init(TWR_GPIO_BUTTON);
twr_gpio_set_mode(TWR_GPIO_BUTTON, TWR_GPIO_MODE_INPUT);

// The Core Module has hardware pull-down so next call is commented out
// twr_gpio_set_pull(TWR_GPIO_BUTTON, TWR_GPIO_PULL_DOWN);
}

void application_task()
{
uint8_t button_state = twr_gpio_get_input(TWR_GPIO_BUTTON);
twr_gpio_set_output(TWR_GPIO_LED, button_state);

// Repeat this task again after 10 ms
twr_scheduler_plan_current_relative(10);
}