Come configurare il TSS (Touch Sensing Software)

La scorsa settimana abbiamo visto come creare un progetto TSS (Touch Sensing Software). Ora vediamo come configurarlo e i passi necessari per inizializzare e configurare il TSS.

Inizializzare il bus MCU, le periferiche, e i clock utilizzando lo Strumento di inizializzazione del dispositivo integrato integrato nell'IDE Freescale CodeWarrior. La libreria TSS non esegue nessuna inizializzazione del dispositivo se non la selezione del GPIO e i moduli del timer. Per inizializzare il TSS, bisogna chiamare la funzione TSS_Init() dopo l'inizializzazione del bus MCU, Questa funzione restituisce un codice di errore se il TSS non è stato configurato correttamente, e restituisce zero altrimenti.

Se desideri maggiori informazioni su questo prodotto Freescale, invia una richiesta ad Arrow utilizzando il seguente modulo.

Configurazione del TSS - Touch Sensing Software

Si può configurare il TSS chiamando la funzione TSS_SetSystem_Config(). Questa funzione cambia i valori nel registro di configurazione del TSS. Se si tenta di cambiare un qualsiasi registro di configurazione manualmente, la libreria interpreta questa operazione come un errore di memoria corrotta. La successiva esecuzione del Touch Sensing Software segnala questo errore lanciando il Data Corruption Fault. Per cambiare qualsiasi configurazione, si deve chiamare la funzione TSS_SetSystemConfig(). Il TSS dunque scrive il nuovo valore nel registro di configurazione, e calcola il nuovo valore di checksum per tutti i registri di configurazione.

Il modo più semplice per configurare questi registri è quello di configurare prima il System Response Time Register che determina la velocità del Touch Sensing Software a rispondere ad eventuali variazioni nel sistema. Successivamente, è possibile impostare la DCTrackerRate (se abilitata) e la sensibilità di tutti gli elettrodi. Per impostare la sensibilità degli elettrodi, impostare ogni elettrodo singolarmente. Quando si imposta la sensibilità di ogni elettrodo, è necessario utilizzare la macro, System_Sensitivity_Register, e aggiungere un numero, dove il numero è l'elettrodo che si desidera configurare.

Setting_Electrodes_Sensitivity How to configure the TSS (Touch Sensing Software)

Configurazione della struttura di controllo
Per configurare la struttura di controllo, è necessario configurare ciascun registro di controllo. La struttura della tastiera è configurata per consentire gli eventi per il tocco e il rilascio di questo controllo. È quindi configurato per consentire massimo due tasti attivi contemporaneamente in qualsiasi momento. Se il sistema dovesse trovare più di due tasti premuti, allora non manda indietro la pressione di un tasto per i nuovi tasti che sono stati premuti. Infine, si è configurato per consentire il controllo ed il callback gni volta che c'è un cambiamento di eventi.

TSS Control Structure Configuration Example

Funzione di callback
Dopo che il sistema è completamente configurato, è il momento di creare la routine di callback che viene generata ogni volta che c'è un nuovo evento nel sistema. La funzione di callback viene creato così:
void fCallBack1 (TSS_CONTROL_ID u8ControlId)

Il parametro U8CtrlId è l'ID del controllo che ha generato il callback. Legge tutti gli eventi che sono stati generati. Per fare questo, il buffer evento può essere letto finché non è vuoto e tutti gli eventi in attesa nel controllo vengono eseguiti.

void fCallBack1(TSS_CONTROL_ID u8ControlId)
{
if(cKey0.Events.BufferOvfFlag == 1)
{
cKey0.BufferReadIndex = cKey0.BufferWriteIndex;
(void) TSS_KeypadConfig(u8ControlId, Keypad_Events_Register, 0u);
}
(void) u8ControlId;
fm_write_index1 = cKey0.BufferWriteIndex-1;
Read_Touch_Buffer(fm_keypad_buffer1, cKey0);
return;
}

Configurazione del Timer
Ci sono diversi modi per settare il vettore del timer overflow. Un modo di settare l'interrupt del timer è utilizzare il file PRM. Bisogna settare il numero del vettore usaro dal vettore di overflow del timer. Consultare il manuale di riferimento per ottenere il numero del vettore di overflow da usare per la MCU.

tss timer configuration exemple

Ciclo principale
Per operare correttamente con TSS, bisogna chiamare la funzione TSS_Task() periodicamente all'interno del ciclo principale.

Gestore degli interrupt dell'applicazione
Il TSS lascia gli interrupt abilitati quando legge le misurazioni dagli elettrodi. Quindi, per l'utente ottenere le misure dagli elettrodi quando si verifica un interrupt. Per identificare se un elettrodo ha lanciato può lanciare un interrupt, è necessario includere la macro ATL_SET_SAMPLE_INTERRUPTED() in ogni interrupt utente. Il file TSS_API.h deve essere anche incluso dato che contiene le routine di interrupt.

Application_Interrupt_Management_Example TSS

Sistema di calibrazione TSS (Touch Sensing Software) e regolazione dei parametri

In una tipica applicazione, le impostazioni degli elettrodi (ad esempio la sensibilità) devono essere impostati attentamente. Freescale offre il TSS Electrode Graphic Tool (EGT) che comunica con l'applicazione e visualizza in tempo reale i dati elaborati dalla libreria TSS. L'EGT implementa un semplice protocollo di comunicazione  per USB, IIC o altre interfacce hardware.

Reference
TSS: Touch Sensing Software Suite

RICHIESTA DI CONTATTO
Se desideri maggiori informazioni su questo prodotto Freescale, invia una richiesta ad Arrow utilizzando il seguente modulo.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend