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