IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres IDE Pascal Discussion :

Comment lancer plusieurs procédures en même temps


Sujet :

Autres IDE Pascal

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Comment lancer plusieurs procédures en même temps
    Bonjour,

    Je veux créer un programme qui lance deux procédures en même temps.

    Première procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    procedure LC;
    begin
        for i:=0 to 3 do
          begin
            Lcd_Cmd(_LCD_SHIFT_RIGHT);
            Move_Delay();
          end;
           while TRUE do
          begin
            for i:=0 to 15 do
              begin
                Lcd_Cmd(_LCD_SHIFT_LEFT);
                Move_Delay();
              end;
     
            for i:=0 to 15 do
              begin
                Lcd_Cmd(_LCD_SHIFT_RIGHT);
                Move_Delay();
              end;
     
          end;
          end;
    Deuxième procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     procedure LC;
    while(1=1)do
       begin
        if(PORTB.0=0)then
           begin
            PORTA.0:=1;
            LC;
           end
        else
           begin
            PORTA.0:=0;
            LC;
           end;
        if(PORTB.1=0) then
           begin
            PORTA.1:=1;
              LC;
           end
        else
           begin
            PORTA.1:=0;
             LC;
           end;
       end;
    end;
    Je ne sais pas comment faire, j'espère de l'aide. Merci.

  2. #2
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    Citation Envoyé par Ghozzi Nassro Voir le message
    Bonjour,
    Je veux créer un programme qui lance deux procédures en même temps.
    Bonjour,

    Je ne connais pas la programmation PIC Micro Pascal, mais la solution devrait se trouver dans l'emploi des "threads" (processus), s'ils sont gérés.

    En revanche, le code fourni me paraît étrange : les boucles "while TRUE" et "while (1=1)" sont équivalentes et ne prévoient apparemment pas de sortie possible. Est-ce bien normal ?

    Bonne continuation,
    Gilles
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  3. #3
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Je veux programmer un pic16f84a pour contrôler un moteur et dans le même temps le circuit affiche
    un message annimé dans un afficheure LCD.
    Le premier boucle "while" pour LCD, et deuxieme boucle pour commandé le moteure.

    Je ne sais pas comment l'utiliser les threads

  4. #4
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    Citation Envoyé par Ghozzi Nassro Voir le message
    Je veux programmer un pic16f84a pour contrôler un moteur et dans le même temps le circuit affiche
    un message annimé dans un afficheure LCD.
    Le premier boucle "while" pour LCD, et deuxieme boucle pour commandé le moteure.
    J'ai consulté un peu de doc à propos de PMP (c'est bien celui que tu utilises, non ?). Il utilise des interruptions. Mais pour ton problème, le plus simple est de sans doute fusionner les deux procédures : hors d'une boucle infinie ("while True" ou "while(1=1)"), tu traites ce qui doit advenir en une occasion et dans une boucle infinie tu traites ce qui doit boucler.

    Bon courage
    Gilles
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  5. #5
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    En votre commentaire précédent me ont conseillé d'utiliser le threads, Puis-je utiliser dans ce cas?
    Et comment les utiliser?, parce que je ne ai pas la moindre idée sur le threads .

    Je me excuse à la prise de votre temps

  6. #6
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    Citation Envoyé par Ghozzi Nassro Voir le message
    En votre commentaire précédent me ont conseillé d'utiliser le threads, Puis-je utiliser dans ce cas?
    Et comment les utiliser?, parce que je ne ai pas la moindre idée sur le threads .

    Je me excuse à la prise de votre temps
    Il n'y a pas à s'excuser. L'entraide, surtout à notre époque, est primordiale, non ?
    Sinon, les threads n'étaient sans doute pas adaptés à ce genre de Pascal. Je reviens à mon idée de fusionner les deux procédures.
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  7. #7
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bien merci.
    Si je fusionne les deux procedures ne seront pas en mesure de contrôler le moteur, déjà j'essayé dans proteus Isis.

    Désolé pour les erreurs de langue

  8. #8
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    Citation Envoyé par Ghozzi Nassro Voir le message
    Bonjour,

    Je veux créer un programme qui lance deux procédures en même temps.
    Bonjour,

    Je n'avais regardé le code puisque je ne connais pas Micro Pascal... mais ça reste du Pascal et de la programmation

    Déjà, pourquoi les deux procédures portent-elles le même nom ? Je vais appeler la première P_LCD et la seconde P_PORT.
    Ensuite, la seconde appelle la première qui boucle indéfiniment avec "while" : il faut choisir celle qui boucle et l'autre qui sera simplement appelée.

    Le résultat peut donner ceci (sous réserve, car je n'ai aucun moyen de tester le résultat) :

    Première procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    procedure P_LCD;
    begin
       for i:=0 to 3 do
       begin
          Lcd_Cmd(_LCD_SHIFT_RIGHT);
          Move_Delay();
       end;
       for i:=0 to 15 do
       begin
           Lcd_Cmd(_LCD_SHIFT_LEFT);
           Move_Delay();
       end;
       for i:=0 to 15 do
       begin
          Lcd_Cmd(_LCD_SHIFT_RIGHT);
          Move_Delay();
       end;
    end;
    Deuxième procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     procedure P_PORT;
    begin
      while(1=1)do
      begin
        if(PORTB.0=0)then
        begin
           PORTA.0:=1;
           P_LCD;
        end
        else
        begin
           PORTA.0:=0;
           P_LCD;
        end;
        if(PORTB.1=0) then
        begin
           PORTA.1:=1;
           P_LCD;
        end
        else
        begin
           PORTA.1:=0;
           P_LCD;
        end;
      end;
    end;
    J'aimerais savoir ce que ça donne

    Gilles
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  9. #9
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Oui, je sais que je ai développé avec le même nom.

    Ainsi que l'expérience de ce que vous présenté à moi avant, et je dois tout le temps quand je veux contrôler le moteur d'attendre jusqu'à ce que le mouvement de texte se termine dans l'afficheur LCD.

    La seule solution est de l'execute les deux procedures en même temps, mais je ne sais pas comment, et est-il disponible en Pascal?

  10. #10
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    Citation Envoyé par Ghozzi Nassro Voir le message
    Oui, je sais que je ai développé avec le même nom.

    Ainsi que l'expérience de ce que vous présenté à moi avant, et je dois tout le temps quand je veux contrôler le moteur d'attendre jusqu'à ce que le mouvement de texte se termine dans l'afficheur LCD.

    La seule solution est de l'execute les deux procedures en même temps, mais je ne sais pas comment, et est-il disponible en Pascal?
    C'est possible en utilisant les "threads" sur les Pascal évolués. Pour celui-ci, je n'ai pas trouvé de documentation à ce sujet sur le site du créateur de PMP : http://www.pmpcomp.fr/?lng=fr
    L'adresse peut être intéressante en passant par le forum.

    Sinon, pour ne pas attendre l'affichage, il faut simuler l'exécution simultanée. C'est pratiquement toujours ce qui se passe dans un système d'exploitation non vraiment multitâches.
    Pour cela, je te conseille de mixer les deux procédures.
    Tu n'en auras donc qu'une seule : un petit peu d'affichage, un petit peu de mouvement et le tour est joué.
    Je te propose d'essayer puis j'essayerai à mon tour de t'aider à corriger le source.

    Bon courage !
    Gilles
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  11. #11
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Je vais essayer de suivre vos conseils, et le rendre meilleur, je vous remercie beaucoup pour aidé moi. Si j'ai obtenu une bonne résultat, je partagera ici pour tout le monde bénéficie.

    Merci

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/01/2012, 11h32
  2. Lancer plusieurs procédure en même temp
    Par Poisson Rouge dans le forum Débuter
    Réponses: 9
    Dernier message: 30/07/2011, 21h43
  3. Lancer plusieures fenetres en même temps
    Par Yogy dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 11/04/2008, 13h35
  4. [VB6] lancer plusieur Form en même temps
    Par mqsi dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 08/10/2007, 14h09
  5. Lancer plusieurs .bat en même temps
    Par mdriesbach dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 22/09/2006, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo