Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
decodage d'un protocole avec pic
Bonjour tout le monde, j'ai besoin d'aide pour décoder le protocole présenter dans le schéma, je dois utiliser une interruption à chaque flèche jaune. c'est obligatoire car le temps de réponse du récepteur provoque un certain retard à la détection des fronts descendant (un retard très variable). la partie colorée en gris est le bit (soit 0 soit 1) pourriez-vous me donner quelque algorithme? ou des programmes en miKroC si vous avez déjà traité ce genre de situation. Merci pour votre réponse bonne continuation.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
decodage d'un protocole avec pic
Bonjour Stifen, et bonjour à tous,
Soit le bienvenu sur le forum,
Normalement il suffit d’initialiser le registre OPTION_REG et INTCON, enfin en fonction du PIC que l'on connait pas !
Version assembleur :
A+
Soit le bienvenu sur le forum,
Normalement il suffit d’initialiser le registre OPTION_REG et INTCON, enfin en fonction du PIC que l'on connait pas !
Version assembleur :
Code : Tout sélectionner
movlw B'00000000' ; b6 = Si modification sur RB0 dans le front descendant = 0, ou montant = 1
movwf OPTION_REG
movlw B'00010000' ; b6 = Autorisation générale périphérique
movwf INTCON ; b4 = Autorise interruption si modification de l'entrée RB0/INT
; b3 = Autorise interruption si modification de l'entrée RB4/RB7
A+
Modifié en dernier par Temps-x le lun. 17 avr. 2017 19:47, modifié 3 fois.
decodage d'un protocole avec pic
-
Jérémy
Administrateur du site- Messages : 2725
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonjour stifen et à tous,
Je suis en train de galérer avec l'UART.
Mais tes explications sont plutôt brumeuses . Je pense que tout protocole de communication commence par un START. derriére ce START il y a un certain nombres de bits a relevé pour au final avoir une info.
D'apres ce que je comprends et ton schéma , tu n'as qu'un bit comme info ? donc c'est soit 0 soit 1 ton infos . bizarre !!
Qu'est ce que tu cherche à faire au juste ? savoir le protocole de communication ?
Je suis en train de galérer avec l'UART.
Mais tes explications sont plutôt brumeuses . Je pense que tout protocole de communication commence par un START. derriére ce START il y a un certain nombres de bits a relevé pour au final avoir une info.
D'apres ce que je comprends et ton schéma , tu n'as qu'un bit comme info ? donc c'est soit 0 soit 1 ton infos . bizarre !!
Qu'est ce que tu cherche à faire au juste ? savoir le protocole de communication ?
decodage d'un protocole avec pic
decodage d'un protocole avec pic
-
Jérémy
Administrateur du site- Messages : 2725
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Oui ce doit etre possible ;
A chaque front descendant tu lance ton interruption .
Tu fais une pause de 1ms et tu lis l'état de ta broche . ( donc le carré gris) .
Je pense que le dernier bit est le stop pour pouvoir repartir . Tu n'as donc qu'un seul bit de payload (donnée utile) !
Puis tu recommence etc .....
dès que tu as un front descendant cela dis, dans 1 ms je t'envoie la donnée . pour schématiser .
Je suis novice mou aussi, mais voila ce que je comprends ! attends peut etre l'avis de quelqu'un plus expert que moi !
A chaque front descendant tu lance ton interruption .
Tu fais une pause de 1ms et tu lis l'état de ta broche . ( donc le carré gris) .
Je pense que le dernier bit est le stop pour pouvoir repartir . Tu n'as donc qu'un seul bit de payload (donnée utile) !
Puis tu recommence etc .....
dès que tu as un front descendant cela dis, dans 1 ms je t'envoie la donnée . pour schématiser .
Je suis novice mou aussi, mais voila ce que je comprends ! attends peut etre l'avis de quelqu'un plus expert que moi !
decodage d'un protocole avec pic
decodage d'un protocole avec pic
Temps-x a écrit :Bonjour Stifen, et bonjour à tous,
Soit le bienvenu sur le forum,
Normalement il suffit d’initialiser le registre OPTION_REG et INTCON, enfin en fonction du PIC que l'on connait pas !
Version assembleur :Code : Tout sélectionner
movlw B'00000000' ; b6 = Si modification sur RB0 dans le front descendant = 0, ou montant = 1
movwf OPTION_REG
movlw B'00010000' ; b6 = Autorisation générale périphérique
movwf INTCON ; b4 = Autorise interruption si modification de l'entrée RB0/INT
; b3 = Autorise interruption si modification de l'entrée RB4/RB7
A+
Merci pour ta réponse Temps-x. mon vrais problème c'est l'algorithme de décodage non pas l'interruption.
decodage d'un protocole avec pic
Bonsoir,
Pour un quart à 4 Mhz :
1)Tu mets ton TMR1 à zéro, tu initialises le débordement sur le front descendant.
2) Quand ton fronts descendant arrive au point zéro, ça provoque une interruption, à ce moment, tu initialises ton TMR1,
en le mettant à (65535 - 2000(2ms)) = 63535, et tu paramètres l'interruption sur le front montant.
3) Tu mets en fonction le timer1, et tu attends qu'il déborde.
4) si tu as une interruption sur le fronts montant, cette fois si, et, avant que ton timer1 déborde, tu arrêtes le timer1
et tu lis la valeur, si elle est de 65535 - 1000µs = 64535, ça veux dire que ton bit est à 1.
Avec un quart à 4Mhz, ça fait 1µs par instruction, c'est largement faisable, et tu as le temps de faire autre chose,
avant qu'il déborde, ça te fait plus de 900 instruction, que tu peux effectuer en attendant.
On utilise cette technique, pour faire varier la tension d'un triac, on détectant le point zéro du secteur, et ça fonctionne très bien.
A+
Pour un quart à 4 Mhz :
1)Tu mets ton TMR1 à zéro, tu initialises le débordement sur le front descendant.
2) Quand ton fronts descendant arrive au point zéro, ça provoque une interruption, à ce moment, tu initialises ton TMR1,
en le mettant à (65535 - 2000(2ms)) = 63535, et tu paramètres l'interruption sur le front montant.
3) Tu mets en fonction le timer1, et tu attends qu'il déborde.
4) si tu as une interruption sur le fronts montant, cette fois si, et, avant que ton timer1 déborde, tu arrêtes le timer1
et tu lis la valeur, si elle est de 65535 - 1000µs = 64535, ça veux dire que ton bit est à 1.
Avec un quart à 4Mhz, ça fait 1µs par instruction, c'est largement faisable, et tu as le temps de faire autre chose,
avant qu'il déborde, ça te fait plus de 900 instruction, que tu peux effectuer en attendant.
On utilise cette technique, pour faire varier la tension d'un triac, on détectant le point zéro du secteur, et ça fonctionne très bien.
A+
decodage d'un protocole avec pic
decodage d'un protocole avec pic
Bonjour,
Pourquoi ton signal changerais d'état, c'est quand tu programmes ton protocole, que tu dois prévoir une vérification.
Que veux tu dire par lecture des bits ?
D'ici peut, je vais écrire avec JMarc, un programme similaire, dans Langage ASM, comme ça, tu pourras voir comment
fonctionne cette routine.
A+
si c'est par exemple par un bruit que le signal à changer d'état dans ce cas là l'algorithme vas tout confondre
Pourquoi ton signal changerais d'état, c'est quand tu programmes ton protocole, que tu dois prévoir une vérification.
Est-ce possible d'avoir une bonne précision sur la lecture des bits
Que veux tu dire par lecture des bits ?
D'ici peut, je vais écrire avec JMarc, un programme similaire, dans Langage ASM, comme ça, tu pourras voir comment
fonctionne cette routine.
A+
Retourner vers « Le forum Fantas-PIC »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 32 invités