analyse de trame de 27 octets

J-M-L:
@medeloualidi

si vous enlevez les traces de debug - toute la partie qui imprime tous les code sur la console alors vous n'aurez sans doute plus de pb

à 4800 bauds vous envoyez 480 octets par seconde, comme vous voulez envoyez vos 27 octets 10 fois par seconde, ça veut dire que vous envoyez 270 octets par secondes et avez la capacité d'en lire 480. ça devrait tenir sans pb si le reste du code côté récepteur ne bloque pas trop longtemps (ce que vos print sur la console faisaient).

Envoyer l'émetteur de vos 27 caractères va prendre disons 30ms en arrondissant puis va re-emetter 70ms plus tard (si le premier octet est envoyé toutes les 100ms).

Donc côté récepteur vous êtes bloqué pendant 30ms pour recevoir tous les octets et vous devez être prêt à recevoir de nouveaux octets 70ms plus tard. Donc en gros il faut que votre code côté récepteur gère tout ce qu'il doit faire en moins de 50ms après avoir reçu une trame par exemple comme ça vous avez 20ms d'avance pour attendre la trame suivante ce qui devrait être suffisant pour éviter tout pb.

la question est donc: que devez vous faire une fois que vous avez reçu cette trame et est-ce que c'est exécutable en 50ms?

une fois je reçois cette trame (qui est codé avant l'émission ) je fait le décodage .. je ne sais pas combien du temps prendre l’exécution du code de décodage ... peut etre je dois faire ça pour mesurer le temps de decodage

duration = micros();
decodage();
duration = micros() - duration;