Bonjour à tous ![]()
je vous présente un peu mon projet:
je planche actuellement sur un capteur de Couple ( Capteur magnétique ) dont la communication est basé sur une protocole SPC ( basée sur le protocole SENT J2716 /* pour ceux que sa intéresse */)
mon objectif à terme est de créer une interface de lecture et d'écriture grâce à une arduino Mega 2560 branché directement sur le capteur via son évalBoard.
dans un premier temps je m’intéresse uniquement à la lecture de l'information renvoyé par mon capteur.
En PJ vous trouverez la "frame" renvoyé par le capteur. /j'ai un peu mal avec la gestion des images dans le forum/ ![]()
la transmission de la frame est initialisée par un "master pulse" ( passage à 0) en suite on a:
- une pulsation de synchronisation (fixe quelque soit la transmission)
- une pulsation de "statuts"
- 3 à 6 pulsations de "data" /* ceux qui m’intéresse
*/ - et enfin un checksum suivi d'une période d’inactivité ( ~ 90µs)
l'information est codé sur la longueur des "data pulses " entrecoupé de passage à 0.
la transmission se fait sur 500~ 800µs et la fréquence de rafraîchissement est 1 ms ( contrainte de réalisation )
Mon problème ![]()
je souhaite m'assuré de toujours lire la "frame" du début a la fin, pour éviter des récupérer une donnée erronée.
ma première approche était de générer une interruption sur changement de front, pour mesurer la temps au niveau haut de chaque impulsion. Mais je n'ai aucune garanti de commencer l'interruption sur le "master pulse".
je me retourne alors vers vous
pour:
- avoir des suggestions d'algorithme (pas /nécessairement/ de code ) et/ou de librairies qui pourrait m'aider.
- et je me demandais si on peux être plus restrictif avec la fonction"attachInterrup" ? ( c-a-d, avoir d'autres facteurs d'interruption que "LOW" "HIGH" ou "CHANGE". Par exemple mettre comme facteur le return d'une autre fonction).
PS: Je suis nouveau sur le forum, et j'ai précedement poster mon topic sur "le bar" ( je suppose que ce n’étais l'endroit approprier, comment le supprimer ?) de plus il doit sans doute y avoir des erreurs de fond ou de forme, merci de me le faire remarqué "poliment" SVP
![]()
