Posté le 01/12/2017 20:07
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 225 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 01/12/2017 20:28 | #
Faire tourner deux fonctions en même temps, ça c'est impossible. Il n'y a qu'un seul coeur dans le SuperH de la calculatrice. En revanche, tu peux toujours implémenter un ordonnanceur tout basique avec un timer. Tu changerais par exemple de fonction 20 fois par seconde pour exécuter progressivement les deux.
Cependant, je suis à peu près certain que tu peux te débrouiller pour faire un chat sans avoir besoin de ce modèle. Si tu pouvais donner quelques précisions sur le mode de communication (port série, port USB, téléportation quantique, magie), on pourrait en décider.
Citer : Posté le 06/12/2017 14:28 | #
Je communique via le port série. Le problème est que je voudrais que l'utilisateur puisse recevoir des messages pendant qu'il en écrive un... Sinon je peux juste attendre la fin de son message pour l'envoyer et pour ensuite checker s'il en a recu un mais je ne trouve pas cette solution optimale... Ou sinon checker pendant l'inscription du message?
Citer : Posté le 06/12/2017 14:31 | #
C'est parfaitement faisable avec des timers, je dirai même que c'est plus propre de faire avec.
En gros tu lance un timer qui toutes les x millisecondes (x = 200 me parait largement suffisant) regarde si y'a des données dans le buffer du port série. Si c'est le cas, tu les affiches. Et ce truc tourne en même temps que ton interface de saisie des messages
Citer : Posté le 06/12/2017 14:32 | #
Comment sa tourner en même temps?
Citer : Posté le 06/12/2017 14:35 | #
En gros le timer interrompt la boucle principale (disons celle dans laquelle tu écris ton message) toutes les 100ms, pour une durée inférieure à la milliseconde. On a donc l'impression que des deux trucs sont exécutés en même temps (récupération des messages et écriture).
Mais nan, on a qu'un seul cœur, donc on peut pas faire tourner les deux fonctions parallèlement. Mais avec les timer justement on se débrouille
Citer : Posté le 06/12/2017 14:36 | #
Ok merci beaucoup je vais me lancer dans un timer dans ce cas!!
Citer : Posté le 06/12/2017 18:35 | #
Voilà, c'est l'idée. Il faut noter que même quand toi tu n'en utilises pas, le système a quand même des timers qui tournent et interrompent « régulièrement » ton programme. C'est parfaitement transparent !
Le meilleur modèle pour cette application (mais il n'est pas possible de l'utiliser dans ton cas), c'est quand le port série lui-même interrompt ton programme quand il reçoit des données. Tu n'as alors pas besoin de timer du tout !