Plusieurs actions en même temps avec un PIC
Répondre à la discussion
Affichage des résultats 1 à 16 sur 16

Plusieurs actions en même temps avec un PIC



  1. #1
    invite5d1bc976

    Plusieurs actions en même temps avec un PIC


    ------

    Salut,

    J'ai une petite question au niveau de la programmation des PIC. En fait j'ai deux moteurs branchés sur un PIC, chacun prends deux pins pour chaque sens, et je les commandes avec un signal carré pour la variation de vitesse, j'ai aussi un emetteur et un recepteur ultrason et un servomoteur. Je voudrais que le PIC puisse faire avancer mon robot et qu'il interprete les signaux des ultrasons en même temps. Mais j'ai vu que pour un signal carré, c'est une boucle qui tourne sans que l'on puisse faire autre chose à côté.
    Faut-il que j'utilise plusieurs PICs ou il y a une solution logiciel?

    Merci d'avance

    -----

  2. #2
    Jack
    Modérateur

    Re : Plusieurs actions en même temps avec un PIC

    Il faut utiliser les interruptions. Cela permet de dérouter l'exécution normale du programme afin de se brancher sur le sous-programme chargé d'exécuter une tâche spécifique.

    A la limite, il est possible d'écrire un programme principal qui ne fait rien qu'attendre les interruptions d'un timer ou des évènements parvenant à des entrées du PIC.

    A+

  3. #3
    invite5d1bc976

    Re : Plusieurs actions en même temps avec un PIC

    Donc je peux me faire une interruption perso avec ma boucle qui me sort mon signal carré, comme ça mon moteur tourne sans arrêt et je peux faire tourner mon programme pour lire des entrées en même temps. C'est bien ça?
    Quand l'interruption tourne, c'est comme une fonction ou pas? C'est-à-dire, est-ce que le programme principal tourne toujours ou non?

  4. #4
    obi76

    Re : Plusieurs actions en même temps avec un PIC

    Non, lors d'une interruption le programme principal s'arrete pour reprendre à la fin de l'interruption là ou il en était.

  5. A voir en vidéo sur Futura
  6. #5
    invite5d1bc976

    Re : Plusieurs actions en même temps avec un PIC

    Il n'y a pas d'autres solutions?

    Sinon je peux faire une interruption à chaque periode du signal. Mais est-ce que l'on peut faire une interruption qui s'execute en fonction d'un timer?

  7. #6
    obi76

    Re : Plusieurs actions en même temps avec un PIC

    sur le 16f84 et 877 tu peux, sur les autres je présume que oui mais dans le doute je ne dis rien.
    Tu peux faire un compteur dans le progeramme principal, et l'interuption te sauvegarde la valeur de la variable comptée. Comme ça tu pourra avoir le temps entre 2 interruptions (entre les 2 signaux pour les ultrasons). Par exemple...

  8. #7
    invite5d1bc976

    Re : Plusieurs actions en même temps avec un PIC

    J'utilise un 16F877, et je programme en C. Est-ce que l'on peut programmer les interruptions directement en C? Est-ce qu'il y a un nombre limité d'interruption perso?

  9. #8
    obi76

    Re : Plusieurs actions en même temps avec un PIC

    Pour les interruptions c'est assez compliqué (enfin façon de parler). Tu a un ergistre à configurer (INTCON) qui dit au pic quelles interruptions sont à prendre en compte (changement d'état du portA, debordement du timer, fin d'écriture dans l'eeprom etc).
    une fois une interruption déclenchée, la valeur du FLAG te permet de savoir de quel type d'interruption il sagit.

    Quoiqu'il en soit, le pic n'as qu'une unité de calcul, par conséquent il ne pourra, quoique tu fasse, pas faire de calcul en parallèle mais FORCEMENT en série.

    je te conseille cette page http://p.may.chez-alice.fr/interrupt.html

  10. #9
    invite5d1bc976

    Re : Plusieurs actions en même temps avec un PIC

    Je viens de le lire, je pense que j'integrerais de l'assembleur directement dans le C. Par contre est-ce que l'on peut modifier des interruptions standard, comme le debordement du timer, est-ce que l'on peut le personnaliser?

  11. #10
    obi76

    Re : Plusieurs actions en même temps avec un PIC

    le personnaliser c'est à dire ?
    Tu peux faire partir la valeur du timer à la valeur que tu veux, comme ça l'interruption aura lieu au bout d'un temps plus ou moins long...

  12. #11
    invite5d1bc976

    Re : Plusieurs actions en même temps avec un PIC

    En fait je voudrais qu'il m'execute tel ou tel action au moment de l'interruption. est-ce possible?

  13. #12
    RISC

    Re : Plusieurs actions en même temps avec un PIC

    Bonjour,

    Tout est relatif...
    Il faut bien comprendre comme cela est déjà mentionné dans un post plus haut qu'un microcontroleur ne peut faire AU NIVEAU LOGICIEL qu'une seule chose à la fois. Donc quand une interruption arrive, le programme principal S'ARRETE pendant l'execution de l'interruption et reprend dès qu'elle et finie.
    Meme si plusieurs actions doivent etre réalisées simultanément, on peut souvent les exécuter sériellement car le décalage dans le temps n'est pas significatif (si une action est démarée qq us après, dans beaucoup de cas cela n'est pas critique. Si ca l'est il faut alors songer à des solutions cablées (logiques programmables) ou systèmes multi-processeurs.

    Par contre les périphériques tournent en parallèle à l'exécution du logiciel, donc pour générer une fréquence il suffit d'utiliser un timer ou si tu veux faire de la MLI (à fréquence élevée), tu utilises l'unité CCP (1 canal seulement je crois sur le PIC16F877).
    Si ta fréquence et la résolution de ta MLI est faible tu peux également faire cela par logiciel sous interruptions timer. Il y aura une légère erreur mais probablement non génante.

    Si tes fréquences sont élevées il vaudrait mieux alors utiliser un PIC avec plusieurs canaux PWM. Il en existe pas mal mais dans la famille PIC18 pour le controle moteur : www.microchip.com/motor

    a+

  14. #13
    invite0ed50554

    Re : Plusieurs actions en même temps avec un PIC

    Bonsoir,
    Un signal carré n'est pas obligatoirement "une boucle qui tourne"
    Cela peut être aussi
    On charge le Timer1 avec une valeur 0Xffff - la durée de l'impulsion
    On monte la sortie à 1
    On lance le timer1
    L'impulsion a démarré pendant ce temps le PIC est libre d'exécuter du programme ou des programmes
    Le Timer1 finit par atteindre 0xFFFF et produit une interruption
    A ce moment onMet la sortie à zéro et on arrête le Timer. Avec un 628 à 20 MHz On peut commander 5 servos en même temps.Le "Temps libre " du PIC est au moins de 15 millisecondes toutes les 20 millisecondes. Pendant ce temps libre le PIC scrute calmement son UART

  15. #14
    RISC

    Re : Plusieurs actions en même temps avec un PIC

    Petite correction : le PIC16F877A contient 2 modules CCP donc on peut piloter 2 PWM directement si ta spécification convient (vérifier le fréquence et la résolution).

    En utilisant les interruptions tu peux mettre à jour le rapport cyclique pour chacun des canaux.

    Le principal avantage des canaux MLI des PIC18 (dédié controle moteur) est que le "dead time" est automatiquement inséré (pour éviter la conduction simultanée des transistors haut et bas dans les ponts).

    A+

  16. #15
    invite5d1bc976

    Re : Plusieurs actions en même temps avec un PIC

    Oui j'avais vu qu'il y avait des pins avec PWM, mais je n'ai toujours pas reussi à trouver sur internet comment le configurer en C...
    Sinon je pense que je peux opter pour utiliser un PIC pour chaque moteur et il y aurait un PIC centrale qui les commanderait seulement avec une pin en faisant varier la vitesse avec la tension de 0 a 5V. Mais je fais ça seulement si je peux utiliser un PIC sans Quartz. Existe-t-il des PIC fonctionnant sans Quartz?

  17. #16
    obi76

    Re : Plusieurs actions en même temps avec un PIC

    Tu peux faire fonctionner les pic en horloge RC (donc sans quartz), mais vu la précision d'un quartz et le prix de celui-ci tu peux te permettre d'en mettre un par µc...

Discussions similaires

  1. Fonctionnement d'un PIC avec plusieurs servo
    Par invite5d1bc976 dans le forum Électronique
    Réponses: 4
    Dernier message: 09/12/2007, 15h37
  2. suivre plusieurs cour à la fac en même temps
    Par invite8703d87f dans le forum Orientation après le BAC
    Réponses: 10
    Dernier message: 16/08/2007, 17h18
  3. peut-on modifier taille de plusieurs photos en même tps avec Picture it ?
    Par invite8832ae39 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 16/07/2007, 01h27
  4. Comment réduire plusieurs photos en même temps
    Par invite23950fd4 dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 26/07/2006, 16h22
  5. comment lire plusieurs boites mail avec le meme logiciel
    Par invite7d3d5bca dans le forum Internet - Réseau - Sécurité générale
    Réponses: 3
    Dernier message: 30/04/2004, 20h41
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...