GX_CountDown est une variable décrémentée automatiquement par GraphX 100 fois par seconde, c'est à dire que sa valeur diminue de 1 chaque centième de seconde. Lorsqu'elle atteind zéro, GraphX cesse de la décrémenter.
Cette variable est faite pour être modifiée et lue par
l'utilisateur. Elle est utile, par exemple, pour garder une
vitesse constante dans un jeu. Consultez les exemples de la FAQ pour
avoir un exemple d'utilisation.
Pour illustrer, disons que vous initialisez GX_CountDown
à 500 :
GX_CountDown= 500;
Puis vous attendez qu'elle atteigne sa valeur limite (zéro) :
while (GX_CountDown != 0) /*on attend*/ ;
Il s'est passé très précisément 5 secondes (500 centièmes de seconde) entre le moment où vous avez initialisé GX_CountDown et le moment où la boucle while s'est interrompue (donc le moment où GraphX a diminué GX_CountDown jusqu'à 0).
Remarque :
Cette variable ne doit jamais être accédée sans avoir préalablement
initialisé GraphX avec GX_PowerOn.
GX_CreateTimer demande à GraphX de lancer frequency
fois par seconde l'exécution d'une fonction. La fréquence
d'appel s'exprime en Hertz. Elle ne peut pas être supérieure
à 256 Hz.
Consultez les exemples de la FAQ
pour avoir un exemple d'utilisation.
Il n'est pas possible de créer plus de 4 timers.
La fonction qui sera exécutée périodiquement ne doit ni comporter d'arguments, ni retourner une valeur. Son prototype est donc de la forme : void NomDeLaFonction(void);
Cette fonction peut effectuer à peu près n'importe quoi. Il
y a juste deux restrictions :
- son temps d'exécution ne doit pas être plus long que
l'intervalle de temps qui sépare théoriquement deux appels (1/frequency
secondes), sinon elle ne sera plus appelée à la fréquence théorique
et votre programme serait très ralentit (mais en aucun cas il ne
planterait : le noyau répartiteur des tâches contient une
protection).
- dans la fonction, vous ne devez jamais accéder à une variable
globale "register" (ce sont les variables globales que
l'on déclare avec les mots-clé register et asm,
par exemple : register
long MaVariable asm (d7);). Toutes les autres formes de
variables globales sont accessibles sans problème.
Paramètres
void *function |
pointeur sur la fonction que GraphX doit appeler périodiquement. |
short frequency |
fréquence d'appel (nombre d'appels par seconde). |
Retour
GX_timer |
renvoie l'identifiant du timer nouvellement créé, ou H_NULL si la création a échouée (il y a deux raisons possibles : soit 4 timers sont déjà créés, soit vous avez demandé une fréquence supérieure à 256 Hz ou inférieure à 1 Hz). |
Remarque :
Cette fonction fait partie des possibilités de programmation
événementielle offertes par GraphX.
Elle ne doit jamais être appelée sans avoir préalablement
initialisé GraphX avec GX_PowerOn.
GX_DestroyTimer supprime le timer identifié par timer
(précédement mis en place avec GX_CreateTimer).
La fonction qui était associée au timer ne sera plus appelée
periodiquement par GraphX.
Paramètres
GX_timer timer |
identifiant du timer à détruire. |
Retour
void |
cette fonction ne renvoie rien. |
GX_SetKeyboardTask demande à GraphX de lancer l'exécution
de la fonction dont vous donnez l'adresse (function) à
chaque fois que l'appui d'une touche est détecté.
La fonction function est appelée uniquement au moment
de l'appui d'une touche. L'utilisateur doit relâcher toutes les
touches pour qu'une nouvelle pression déclenche l'appel de la
fonction function.
Consultez les exemples de la FAQ
pour avoir un exemple d'utilisation.
Paramètres
void *function |
pointeur sur la fonction que GraphX doit appeler lorsque l'utilisateur presse une touche. Si vous passez NULL, GraphX n'appelera plus aucune fonction lorsque l'utilisateur pressera une touche. |
Retour
void |
cette fonction ne renvoie rien. |
Remarque :
Cette fonction fait partie des possibilités de programmation
événementielle offertes par GraphX.
Elle ne doit jamais être appelée sans avoir préalablement
initialisé GraphX avec GX_PowerOn.
Il n'est pas obligatoire de désactiver les interruptions
automatiques numéros 1 et 5 pour garantir l'appel de la fonction
function lors de l'appui sur une touche.