Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1124 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [MiKroC] Appeller plusieurs procédures\sous programmes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MiKroC] Appeller plusieurs procédures\sous programmes

n°1684133
Mickael368
Posté le 08-02-2008 à 17:08:19  profilanswer
 

Bonjour à tous,  
 
Dans le cadre de notre PPE, nous réalisons un programme capable de gérer la monter, la descente ou l'arrêt d'un store automatique (type SOMFY).  
 
On a donc besoin de créer un programme principale (qui gérera les sous programmes) et trois sous programmes (qui géreront respectivement la montée, la descente, le stop). Ainsi, nous avons donc besoin d'inclure les sous programmes dans les sous programmes...  
 
Exemple : le programme principal appelle le programme "monté". Lorsque le programme "monté" est en marche, le bouton STOP est appuyé => ainsi le programme "Stop" est appellé dans le sous programme "monté". Notre problème est simple : on doit donc appeller un sous programme dans un sous programme. Nous ne savons donc pas comment organiser la déclaration de nos procédures : il faut bien déclarer un sous programme avant un autre...Ce qui est impossible...  
 
Nous essayons donc d'assimiler notre programme à un graphcet (4 pages, une page par programme). Mais comment déclarer les trois sous programmes (procédures) pour qu'ils puissent se renvoyer l'un à l'autre. Nous avons tester la fonction "#include" puis "add to project"...Sans succès.  
 
Pouvez vous nous aider ? (-- Je sais que notre problème semble compelxe (très difficile à expliquer par internet... (^-^) ) --)  
 
Merci de votre aide :)

mood
Publicité
Posté le 08-02-2008 à 17:08:19  profilanswer
 

n°1684139
matafan
Posté le 08-02-2008 à 17:18:41  profilanswer
 

Qu'est-ce que tu appelles "sous-programme" ? Une fonction ? Si oui, c'est à ça que sert la déclaration de fonctions : à déclarer le prototype d'une fonction de manière à pouvoir l'utiliser avant qu'elle ne soit définie dans le code.

n°1684946
Xav_
The only one...
Posté le 11-02-2008 à 16:14:24  profilanswer
 

comme le dit matafan, c'est plutot des "fonctions" ce que tu apelle "sous-programme", et sinon, je le ferais pas avec 3 mais seulement 2 fonctions.
 
1/ Sens (en fonction du bouton appuyé)
2/ Mouvement (avec un argument "sens" )
 
Ta fonction "Sens" lit les boutons pour renseigner la valeur de "sens" (haut -> HAUT, bas -> BAS, stop -> FIXE) ça se fait bien avec un pti enum.
Ta fonction "Mouvement" est appelée à chaque cycle, si c'est FIXE, direct tu fais un exit (sans rien faire), sinon tu déplace "d'un cran" dans le sens "sens" (tu peux aussi rajouter un test pour voir si tu n'est pas en butée du sens en question, et dans ce cas, tu positionne sens à FIXE)
 
Voilà, je sais pas si je suis clair, je l'espère.
 
Bonne continuation.
 
EDIT: le découpage comme tu le présente, avec 4 fonctions est des appels entre les fonctions me parait vachement trop complexe pour pas dire "casse-gueule". Quand ta fonction "montée" sera en cours, si elle s'éxécute en continue, tu ne sera plus capable de lire le bouton stop (à moins de faire du multi-thread, et encore, selon la priorité des taches...). Le découpage que je te propose me parait nettement plus approprié, à toi de voir.


Message édité par Xav_ le 11-02-2008 à 16:17:24

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1685057
Emmanuel D​elahaye
C is a sharp tool
Posté le 11-02-2008 à 21:01:33  profilanswer
 

Mickael368 a écrit :

Dans le cadre de notre PPE, nous réalisons un programme capable de gérer la monter, la descente ou l'arrêt d'un store automatique (type SOMFY).


Il y a 2 façons de concevoir l'implémentation d'un comportement séquentiel :

 

- Algorithmique avec des boucles et de flags dans tous les sens... (imbitable...)
- Evènementiel (machine à état ou FSM).

 

Comme tu as fais un grafcet, c'est évidemment la 2 ème solution qui s'impose.

 

http://mapage.noos.fr/emdel/clib.htm
Module FSM.


Message édité par Emmanuel Delahaye le 11-02-2008 à 21:02:17

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [MiKroC] Appeller plusieurs procédures\sous programmes

 

Sujets relatifs
attacher un compte unix a plusieurs groupeOuvrir plusieurs page en un clique
utiliser des programmes en C sous MatlabRécuperer et afficher plusieurs lignes de données
Comment faire plusieurs blocslancer plusieurs fichier sur imprimante réseau
[Access - SQL] Count sur plusieurs tablesVérification de l'existence d'une ou plusieurs colonnes dans une table
Requete sql sur plusieurs tablesfontion ereg pour plusieurs mots rechercher ?
Plus de sujets relatifs à : [MiKroC] Appeller plusieurs procédures\sous programmes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR