Unit RPIFT5406

From Ultibo.org
Revision as of 01:51, 16 December 2016 by Ultibo (Talk | contribs)

Jump to: navigation, search

Return to Unit Reference


Description


This is the touchscreen driver for the Official Raspberry Pi 7" Touchscreen. While this device uses a FocalTech FT5406 10 point capactive touchscreen controller it is actually connected to the GPU and not directly accessible to the ARM processor.

In order to make the touchscreen data available the GPU provides a memory based interface that can be read by polling an address returned from a mailbox call.

The Linux driver uses a thread to poll the data approximately 60 times per second so this driver does something similar.

Constants



RPiFT5406 specific constants RPIFT5406_*
RPIFT5406_TOUCH_DESCRIPTION = 'Raspberry Pi FT5406 Touch Controller'; Description of RPiFT5406 Touch device
 
RPIFT5406_THREAD_NAME = 'RPiFT5406 Touch'; Name of the RPiFT5406 Touch polling thread
 
RPIFT5406_MAX_POINTS = 10;  
RPIFT5406_MAX_X = $FFF;  
RPIFT5406_MAX_Y = $FFF;  
RPIFT5406_MAX_Z = 0;  
 
RPIFT5406_SCREEN_WIDTH = 800;  
RPIFT5406_SCREEN_HEIGHT = 480;  


Type definitions


To be documented

Public variables


To be documented

Function declarations



Initialization functions

procedure RPiFT5406Init;
Description: Initialize the RPiFT5406 unit and create, register and start the device
Note Called only during system startup


RPiFT5406 touch functions

function RPiFT5406TouchStart(Touch:PTouchDevice):LongWord;
Description: Implementation of TouchDeviceStart API for RPiFT5406
Note Not intended to be called directly by applications, use TouchDeviceStart instead


function RPiFT5406TouchStop(Touch:PTouchDevice):LongWord;
Description: Implementation of TouchDeviceStop API for RPiFT5406
Note Not intended to be called directly by applications, use TouchDeviceStop instead


function RPiFT5406TouchExecute(Touch:PRPiFT5406Touch):PtrInt;
Description: Thread function for the RPiFT5406 Touch controller driver. The thread polls the memory touch buffer approximately 60 times per second for new touch data and inserts received touch points into the buffer of the passed device
Note Not intended to be called directly by applications


Return to Unit Reference