Jak na: GPIO piny
Pro propojení modulu Core Module s okolním světem můžete využít mnoho GPIO pinů (General Purpose Input/Output piny).
Piny jsou popsané v Header Pinout. V SDK mají piny názvy TWR_GPIO_P0 až TWR_GPIO_P17. Existují také dva speciální piny určené pro TWR_GPIO_LED a TWR_GPIO_BUTTON.
Odkazy
- GPIO SDK Module
- Příklad v repozitáři na GitHubu
info
Tento příklad rozsvítí LED na modulu Core Module. Běžnější a pohodlnější způsob ovládání LED je použít kód twr_led, ale zde používáme twr_gpio, abychom vysvětlili základy 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);
}
info
Tento příklad přečte stav tlačítka a podle něj se LED nastaví do stavu ON/OFF.
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);
}