[KROK-PO-KROKU] Prosta aplikacja interfejsu dotykowego na mikrokontrolerze Atmel SAM D20 (Cortex-M0+)
Potem napisana została funkcja konfigurująca wyprowadzenia PB14 i PB15, które podłączone są do diod LED. Funkcja ta została wywołana na początku funkcji main().
void configure_port_pins(void) { struct port_config config_port_pin; port_get_config_defaults(&config_port_pin); config_port_pin.direction=PORT_PIN_DIR_OUTPUT; port_pin_set_config(PIN_PB14, &config_port_pin); port_pin_set_config(PIN_PB15, &config_port_pin); }
Następnie w funkcji main.c w nieskończonej pętli while(1) wywoływana jest funkcja odpowiedzialna za pomiar pojemności czujników. Po zakończeniu jej działania sprawdzane jest czy przyciski zostały dotknięte. Odpowiednio do odczytanych stanów przycisków diody LED zostają włączone bądź wyłączone. Opisany proces powtarza się cyklicznie.
while (1) { /** * Goto STANDBY sleep mode, unless woken by timer or PTC interrupt. */ system_sleep(); /** * Start touch sensor measurement. */ touch_sensors_measure(); /** * Update touch status once measurement complete flag is set. */ if ((p_selfcap_measure_data->measurement_done_touch == 1u)) { p_selfcap_measure_data->measurement_done_touch == 0u; button1_state = GET_SELFCAP_SENSOR_STATE(0); button2_state = GET_SELFCAP_SENSOR_STATE(1); if(button1_state) { port_pin_set_output_level(PIN_PB14, 0); } else { port_pin_set_output_level(PIN_PB14, 1); } if(button2_state) { port_pin_set_output_level(PIN_PB15, 0); } else { port_pin_set_output_level(PIN_PB15, 1); } } }
Więcej informacji dotyczących tego jak przy wykorzystaniu platformy Xplained Pro i środowiska programistycznego Atmel Studio tworzyć aplikacje z interfejsem dotykowym można znaleźć w dokumentacji firmy Atmel [3].
Literatura
[1] www.atmel.com Atmel QTouch Library, Peripheral Touch Controller, User Guide [2] www.atmel.com Atmel QT1 Xplained Pro, User Guide [3] www.atmel.com Atmel AT05850: QTouch with SAM D20 Training Guide