mXT143E Xplained multi-touch demo application
Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
#include <asf.h>
#include <stdio.h>
Data Structures | |
struct | finger |
Struct for touch visualization data. More... | |
Macros | |
#define | DISPLAY_COLOR GFX_COLOR_BLACK |
Background color of display. More... | |
#define | ENABLE_COORDINATE_DISPLAY |
Define to enable display of touch coordinates with each square. More... | |
#define | ENABLE_TOUCH_SIZE_DISPLAY |
Define to enable resizing of the touch square based on the touch size. More... | |
#define | MAX_TOUCHES 8 |
Maximum number of touches to track. More... | |
#define | MAXTOUCH_TWI_ADDRESS 0x4a |
Address of the mXT143E on TWI bus. More... | |
#define | MIN_SQUARE_SIZE 70 |
Minimum size of touch squares to draw. More... | |
Functions | |
static void | draw_finger_square (const struct finger *draw_finger, const gfx_color_t color) |
Draw square around a finger. More... | |
static void | get_finger_display_coordinates (const struct mxt_touch_event *touch_event, struct finger *finger_data) |
Compute display coordinates for touch. More... | |
int | main (void) |
Main application loop. More... | |
static void | mxt_handler (struct mxt_device *device) |
Handle maXTouch messages. More... | |
static void | mxt_init (struct mxt_device *device) |
Set maXTouch configuration. More... | |
#define DISPLAY_COLOR GFX_COLOR_BLACK |
Background color of display.
Referenced by main(), and mxt_handler().
#define ENABLE_COORDINATE_DISPLAY |
Define to enable display of touch coordinates with each square.
#define ENABLE_TOUCH_SIZE_DISPLAY |
Define to enable resizing of the touch square based on the touch size.
#define MAX_TOUCHES 8 |
Maximum number of touches to track.
Referenced by mxt_handler().
#define MAXTOUCH_TWI_ADDRESS 0x4a |
Address of the mXT143E on TWI bus.
Referenced by mxt_init().
#define MIN_SQUARE_SIZE 70 |
Minimum size of touch squares to draw.
Referenced by draw_finger_square().
|
static |
Draw square around a finger.
This function draws an unfilled square around the specified finger.
draw_finger | Pointer to finger struct |
color | Color to draw with |
References GFX_COLOR_TRANSPARENT, gfx_draw_string(), gfx_generic_draw_rect(), gfx_get_string_bounding_box(), MIN_SQUARE_SIZE, finger::size, sysfont, finger::x, and finger::y.
Referenced by mxt_handler().
|
static |
Compute display coordinates for touch.
This function computes the display coordinates for a given touch event, and stores it in the specified X- and Y-coordinate containers.
touch_event | Pointer to touch event |
finger_data | Pointer to finger struct |
References gfx_get_height(), gfx_get_width(), finger::size, mxt_touch_event::size, finger::x, mxt_touch_event::x, finger::y, and mxt_touch_event::y.
Referenced by mxt_handler().
int main | ( | void | ) |
Main application loop.
This is the main application function, which runs all the initialization code, clears the display and enters a loop in which it continuously polls for new messages from the maXTouch device. If one or more messages are pending, the maXTouch message handler is invoked.
References board_init(), DISPLAY_COLOR, gfx_draw_filled_rect, gfx_get_height(), gfx_get_width(), gfx_init, mxt_handler(), mxt_init(), mxt_is_message_pending(), and sysclk_init().
|
static |
Handle maXTouch messages.
This function handles the maXTouch messages, triggering the drawing of squares around new or moved touches, and removing the squares around released touches.
device | Pointer to mxt_device struct |
References DISPLAY_COLOR, draw_finger_square(), finger::enable, get_finger_display_coordinates(), GFX_COLOR_BLUE, GFX_COLOR_CYAN, GFX_COLOR_GRAY, GFX_COLOR_GREEN, GFX_COLOR_MAGENTA, GFX_COLOR_RED, GFX_COLOR_WHITE, GFX_COLOR_YELLOW, mxt_touch_event::id, MAX_TOUCHES, mxt_is_message_pending(), MXT_MOVE_EVENT, MXT_PRESS_EVENT, mxt_read_touch_event(), MXT_RELEASE_EVENT, mxt_touch_event::status, and STATUS_OK.
|
static |
Set maXTouch configuration.
This function writes a set of predefined, optimal maXTouch configuration data to the mXT143E Xplained.
device | Pointer to mxt_device struct |
References Assert, delay_ms, MAXTOUCH_TWI_ADDRESS, MXT_GEN_ACQUISITIONCONFIG_T8, MXT_GEN_COMMANDPROCESSOR_CALIBRATE, MXT_GEN_COMMANDPROCESSOR_RESET, MXT_GEN_COMMANDPROCESSOR_T6, MXT_GEN_POWERCONFIG_T7, mxt_get_object_address(), mxt_init_device(), MXT_PROCG_TOUCHSUPPRESSION_T48, MXT_RESET_TIME, MXT_TOUCH_MULTITOUCHSCREEN_T9, mxt_write_config_object(), mxt_write_config_reg(), twi_options_t::speed, status, STATUS_OK, twi_master_setup(), and UNUSED.
Referenced by main().