Table de ping-pong interactif LED bière (48 / 88 étapes)

Etape 48 : Logiciel : temps de retard et Animations

Afin de faire une animation, nous aurons besoin créer une forme quelconque d’un retard de temps entre les images, sinon l’animation prendra seulement une fraction de seconde pour terminer. Nous ne voulons pas utiliser n’importe quel délais conventionnels qui vont arrêter le programme et rendre les autres fonctionnalités telles que les rondelles de balle inutilisable. Nous avons besoin de garder le programme parcourant tout le code et la vérification de chaque segment de code pour vérifier si le temps écoulé a passé.

Un des moyens plus efficaces de le faire est d’utiliser un compteur global qui obtient incrémenté dans une routine d’interruption. Dans la routine d’interruption du service pour Timer3, il y a une variable globale de 32 bits (count32) qui est incrémentée à chaque interruption. Cette variable sera alors utilisée dans la plupart de nos délais d’interruption avec une fonction appelée "Time_Check (UINT32 * mark, UINT16 intervalle)' permet de suivre le temps de retard tout en gardant le programme qui coule. Nous allons créer une animation exemple qui éclaire chaque ligne sur la grille de LED, un à la fois. Nous l’appellerons « Our_Test_Animation(void) ».

Our_Test_Animation(void)
1) dans le fichier Globals.h, dédier seq [x] à votre fonction que vous créez. « x » étant une variable inutilisée dans l’array seq. Pour cet exemple, nous utiliserons seq [24].

2) ajouter le prototype de fonction à votre fichier d’en-tête et de mettre en place la fonction dans le fichier de programme C. Pour cet exemple, nôtre sera « UINT8 Our_Test_Animation(void) ».

3) déclarez une variable de 'statique UINT8 last_seq' qui est égale à 0xFF et variable 'statique UINT32 tmark' qui est égale à 0. Ces variables doivent être statiques pour que la routine souvient leurs valeurs lorsqu’il effectue une boucle à travers l’animation.

4) nous aurons besoin d’au moins une variable locale appelée « retard » qui est utilisé pour faire référence à 'count32' dans la fonction Time_Check(). « retard » fait exactement comment ça s’appelle, elle retarde le programme un laps de temps spécifié (8ms/interrupt * valeur de « retard »).

5) La valeur de réinitialisation pour seq [x] est 0xFF. Lorsque la routine recommence, il exécutera le ' si (seq [24] == 0xFF)' morceau de code, c’est où nous avons mis en place certaines variables pour le démarrage de notre animation.

6) le prochain ' si (seq [24]! = last_seq)' instruction vérifie pour voir si il y a une nouvelle séquence. S’il existe, il mettra à jour last_seq à la valeur actuelle de la seq [24], il sera ensuite mettre à jour notre référence de synchronisation (tmark) et ensuite mettre à jour le code de l’animation.

7) ' si (Time_Check (& tmark, retard))' vérifie si l’intervalle de temps spécifié s’est écoulé depuis la dernière boucle, par le biais de la fonction. Si oui, il mettra à jour seq [24] à la séquence suivante et l’animation sera mis à jour de la prochaine boucle par le biais de la fonction.

8) ' si (seq [24] > 31)' vérifie si toutes les séquences ont été exécutées et que l’animation est terminée. La valeur de « 31 » dépend de combien de séquences vous avez dans votre routine (nous avons 32 séquences dans cette routine, 0 - 31). Si toutes les séquences ont été exécutées, nous seq [24] la valeur sa valeur par défaut de 0xFF et renvoient une erreur 0 indiquant que l’animation est terminée.

9) si l’animation n’a pas exécuté toutes ses séquences, elle retourne un 1.

Croix de référence les étapes ci-dessus avec le code fini en photo #4. En créant une animation de cette façon, nous sommes limités aux 255 séquences (255 séquences + 1 séquence de réinitialisation) parce que nous utilisons une variable 8 bits pour seq [x]. Si vous avez besoin de plus de 255 images, vous pouvez changer seq [x] à une variable 16 bits et ont des séquences jusqu'à 65535. Si vous avez besoin de synchronisation plus précis que Timer3 peut offrir (~ 8ms par interruption), vous pouvez configurer Timer5 d’interrompre plus tôt et de s’y installer le compteur global (count32). Enfin, les animations que le code peut prendre en charge la durée par défaut est 50. Si vous avez besoin de plus de 50 animations interruption retardée, vous avez juste besoin d’augmenter la valeur de la constante SEQ_AMOUNT (typedefs.h) à la valeur dont vous avez besoin.

La principale limite à l’utilisation d’un délai d’interruption comme celui-ci est que notre boucle principale doit être efficace et nous ne pouvons pas perdre trop de temps dans une routine dans la boucle principale. Le programme doit continuer à circuler tout le chemin à travers car si elle s’arrête pour cela diffèrerait trop longtemps le moment où le reste des routines avec elle. Photo #5 contient un autre exemple pour une animation appelée Cycle_Colors(void) qui utilise le même format de délai d’interruption.

Articles Liés

Table de ping-pong de LED

Table de ping-pong de LED

Cette table de ping-pong de bière LED souffle d'esprit, et si vous le faites correctement, pas de fusibles. Le modèle entièrement fonctionnel, les deux détecte où une balle rebondit et améliore votre expérience de faire la fête avec un spectacle de l
Table de ping-pong de bière Arduino LED

Table de ping-pong de bière Arduino LED

Notre projet est une lumière LED table de divertissement, ou familièrement, une table de Beer Pong. Nous avons eu l'idée d'un groupe d'étudiants l'an dernier qui a aussi construit une table de beer pong pour leur projet final, et nous avons appris su
Table de ping-pong EL fil Infinity

Table de ping-pong EL fil Infinity

j'ai décidé de faire une table de ping-pong génial pour ma nouvelle maison. Vous allez aimer la vie au Collège !Liste des pièces :-Plier-Up de Table en plastique-EL fil de votre choix-Pilote pour le fil de votre choixJe recommande fortement coolneon.
Pliage facile Table de Ping-pong

Pliage facile Table de Ping-pong

Nous allons faire une table de ping pong pliante comme mon premier projet DIY publié en instrucables.com. Les dimensions réelles d'un une table de ping pong sont 274 x 152 cm, en raison des difficultés de transport, notre table auront suivantes dimen
Comment construire une Table de Ping Pong

Comment construire une Table de Ping Pong

le projet décrit la construction d'une table de Ping Pong dimensionnée pour les tailles standards internationaux.C'est un boulot facile : tous les gens peuvent être en mesure de le faire.Seulement les matériaux simples sont utilisés (principalement d
BRICOLAGE Table de Ping Pong

BRICOLAGE Table de Ping Pong

cette table de ping-pong DIY facile est prête à l'emploi en quelques minutes. Il en coûte moins de 100 $ et les jambes sont quelque chose que chaque propriétaire d'une maison a besoin de toute façon !NOTE : Ceci n'est pas une table de règlement ! Ce
Table de ping-pong de bière facile College

Table de ping-pong de bière facile College

Nous avons tous vu les trucs qui collégiens jettent avant l'été-canapés, matelas, lampes, etc.. S'il vous arrive de trouver une étagère et une planche à repasser, vous pouvez transformer cette ordure dans une table de ping-pong de bière solide pour v
Upcycling cliquez sur stratifié pour une table de ping-pong

Upcycling cliquez sur stratifié pour une table de ping-pong

tout le monde qui a déjà installé un sol stratifié clic sait qu'on finit toujours avec une tonne de planches de rechange.C'est ce que vous faites avec lui.Que devez-vous :2 paquets de stratifié clic (au moins 137cm de longueur)1 tube de kit de montag
Comment construire une table de ping-pong pliable bière !

Comment construire une table de ping-pong pliable bière !

Pour un ami, j'ai construit cette table de ping-pong de bière !La question est qu'une table de beer pong est vraiment grande, donc j'ai créer un pliable !Celui-ci est adapté en un terrain de football.Étape 1: Préparer des matériaux ! La table est 2,4
Table de ping-pong/café bière bon marché et simple

Table de ping-pong/café bière bon marché et simple

je suis un étudiant de collège avec des élèves de collège pour les amis. Certains d'entre eux ont une maison et voulaient une table de beer pong. Nous n'étions pas chers, donc nous fait celui-ci.Matériaux :-Porte de l'âme dans un centre d'accueil de
Table de Ping Pong MCPE

Table de Ping Pong MCPE

Sup ! Alors, j'ai atteint mon objectif pour les adeptes du 30 et il n'est pas même près de la fin du mois d'avril ! En récompense, j'ai fait ce peasy facile de ping-pong qui correspond à votre propre maison ! :), espérons que vous apprécierez !Étape
Table de ping-pong de bière portable

Table de ping-pong de bière portable

Tout d'abord, je suis d'Afrique du Sud et pong bière n'est pas grand, ici, ou devrais-je dire que ce n'est pas gros encore. J'ai décidé de construire ma propre table parce que vous ne pouvez pas simplement acheter tables ici et si vous voulez importe
Table du peuple : Outdoor Public Ping Pong

Table du peuple : Outdoor Public Ping Pong

Ce Instructable fournit des détails et des instructions pour une table de ping-pong extérieure qui sert également d'une œuvre d'art et peut devenir un élément permanent sur un trottoir, le plaza ou le parc. Notre intention était de fournir un exemple
Comment.. Faire de la magie A Ping Pong Table

Comment.. Faire de la magie A Ping Pong Table

Voilà comment nous avons fait notre première table de ping-pong magique ! C'est une table de la salle de conférence qui peut facilement être transformée en une table de ping pong ! Nous espérons que vous apprécierez !Etape 1: Tout d'abord vous avez b