Les fonctions de gestion du clavier

 

 

 

INIT_I2C ()
Initialisation de la liaison I2C: vitesse de transmission 12 MHz en mode connecté USB, 750 kHz sinon


MPR084_init()
Initialisation du circuit MPR084
Délai d'attente pour assurer la montée en tension du circuit
Mise en route de l'horloge I2C
Configuration de la liaison I2C
Activation de la broche ATTN
Vérification du circuit MPR084
RAZ  du senseur de touches

Vérification de la réactivité
Initialisation du journal des touches

Mise en mode Stop 1 pour la configuration initiale

Mise du nombre de l'appui simultané des touches à 1
Réglage du seuil de sensibilité des touches 1 à 8

Désactivation du buzzer

Initialisations: son, autocalibration, buffer d'appui et de relâchement des touches

Initialisation de l'horloge maître à 5ms

Multiplieur TASP à 2

Pas de délai pour les touches

Arrêt de l'horloge I2C

Autorisation des IRQ

 

byte ProximitySensorRead()

Lecture du Rotary Status Register pour savoir si une touche a été pressée et si oui qu'elle touche. Résultat =  Status of Touch Pad

Lecture de l'état du courant du pad des touches

Détermine si une touche est actuellement touchée ou non

Si une touche a un contact, détermine laquelle.

interrupt VectorNumber_Virq void IRQ_ISR (void)

Routine d'IRQ

Bascule de la broche destinée à réveiller le MPR084 pour qu'il communique par sa liaison I2C, puis lecture du Status register, RAZ du buffer FIFO et retour en mode basse consommation

Mise en route de l'horloge et réinitialisation de l'I2C

Mise du MPR084 en mode run1 pour la communication par I2C

Recherche d'erreur

Si pas d'erreur, lire le senseur et afficher sur la matrice de LEDs

RAZ IRQ, remise en mode basse consommation
Arrêt de l'horloge I2C


MPR084SetLowPower()
Mise en mode basse consommation du senseur de touches

Démarrage de l'horloge I2C et réinitialisation I2C

MPR084 actif

Mise en mode stop1 pour la configuration initiale

Pas de délai pour les touches

Activation IRQ et mise en mode 2

 

byte LastKeyPressed()

Retourne la valeur de la dernière touche pressée

 

byte KeyPressed()

Retourne 1 si la touche est actuellement pressée, 0 sinon

byte SlideLeftUp()

Retourne Vrai si un glissement vers le haut sur les touches du côté gauche est effectué


byte SlideLeftDown()

Retourne Vrai si un glissement vers le bas sur les touches du côté gauche est effectué


byte SlideRightUp()

Retourne Vrai si un glissement vers le haut sur les touches du côté droit est effectué

 

byte SlideRightDown()

Retourne Vrai si un glissement vers le bas sur les touches du côté droit est effectué

byte ExitApp()
Retourne Vrai si un glissement vers bas sur les touches du côté droit est effectué

 

byte SecretCode(byte code)

Vérifie le code secret

 

Pause(void)

Routine de pause

 

AddTouch(byte key)

Ajoute la touche pressée à l'historique des touches

 

IIC_StartTransmission (unsigned char SlaveID,unsigned char Mode)
Lit un registre à partir de la transmission  de démarrage I2C du MPR084
* le paramètre SlaveID l'adresse de l'esclave sur 7 bits
* le paramètre Mode  positionne le mode lecture ou écriture

 

 

byte u8MPR084ReadRegister(byte u8RegisterAddress)

* le paramètre  u8RegisterAddress est l'adresse du registre

 

MPR084WriteRegister(byte u8RegisterAddress, byte u8Data)

Ecrit un octet de donnée sur le registre spécifié du  MPR084

* le paramètre  u8RegisterAddress est l'adresse du registre

* le paramètre u8Data est la donnée à écrire