Programme Tripode C

Programme Tripode C - C - Programmation

Marsh Posté le 16-03-2017 à 10:00:22    

Bonjour à vous,
 
Alors voilà je suis élève en STI2D et donc je suis en train de finaliser mon Projet de fin d’année mais un problème me vient à moi ! Alors voila en complètement mon programme il y a certains trou que je n'arrive pas à combler... notamment les while et if auriez vous des propositions ou une aide à m'apporter pour m'aider dans mon projet...
 
Merci à vous :)
 
 
sbit  TRIPODE  at  RC2_bit;
sbit  TRIPODE_Direction  at    TRISC2_bit;
sbit  A  at  RC4_bit;
sbit  A_Direction  at    TRISC4_bit;
sbit  B  at  RC5_bit;
sbit  B_Direction  at    TRISC5_bit;
sbit  Passage_OK  at  RC0_bit;
sbit  Passage_OK_Direction  at    TRISC0_bit;
 
sbit  CDE_ELECTROAIMANT  at  RA0_bit;
sbit  CDE_ELECTROAIMANT_Direction  at    TRISA0_bit;
 
 
void main() {
     unsigned  char Fin_Cycle;
     /************ Configuration des ports utilisés en I/O numériques  ********/
     ANSEL = 0;
     CMCON0 = 7;
     /********** Configuration (sens de transfert) des entrées numériques *****/
     A_Direction = ?;
     B_Direction = ?;
     TRIPODE_Direction = ?;
     /********** Configuration (sens de transfert) des sorties numériques *****/
     CDE_ELECTROAIMANT_Direction = TRISA0_bit;
     Passage_OK_Direction = TRISC0_bit;
     
     CDE_ELECTROAIMANT = RA0_bit?;
     Passage_OK = TRISC0_bit;
     Delay_ms(2000);
 
 
    while(1){
       Fin_Cycle = 0;
       while(TRIPODE == RC2_bit);
       do{
          CDE_ELECTROAIMANT = RA0_bit;
          while (!(A ==  && B == );         // Attente de la Phase 1
          CDE_ELECTROAIMANT = RA0_bit;               // Deverouillage
          while (A ==  && B == );            // Phase 1 attente phase suivante
           
          if (!(A == ? && B == ?))       // Test verification passage à la phase 2
          {
             continue;                // Retour au verouillage
          }
          while (A == ? && B == ?);     // Phase 2 attente phase suivante
           
          if (!(A == ? && B == ?))       // Test verification passage à la phase 3
          {
             continue;                // Retour au verouillage
          }
          while (A == ? && B == ?);   // Phase 3 attente phase suivante
           
          if (!(A == ? && B == ?))       // Test verification passage à la phase 1
          {
             continue;                // Retour au verouillage
          }
          Fin_Cycle = 1;
       }while (??);
       CDE_ELECTROAIMANT = ?;
       Passage_OK = ?;
       Delay_ms(1000);
       Passage_OK = ?;
     }
 
}

Reply

Marsh Posté le 16-03-2017 à 10:00:22   

Reply

Marsh Posté le 16-03-2017 à 14:37:13    

valentincaceres a écrit :

il y a certains trou que je n'arrive pas à combler...

Tu es en train de "finaliser" ton projet? Certains trous? T'as rien foutu! (en plus si - comme je suppose - tu as eu ce code à compléter). Relis ton cours, lis la doc du compilateur (pour les machins_bit dont tu as apparamment pas compris l'utilité), la doc du µC (que tu n'indiques pas, je dirais PIC) et le réglement points 0C et 0D.

Reply

Marsh Posté le 17-03-2017 à 21:58:10    

A ben tiens...
https://openclassrooms.com/forum/su [...] e-91569101
http://forums.futura-sciences.com/ [...] ode-c.html
 
C'était parfaitement prévisible et notre fainéant élève n'y obtiens pas plus d'aide qu'ici (heureusement).

Reply

Marsh Posté le 22-03-2017 à 17:02:18    

Inutile de m'insulter !! Tu sais la programmation ne concerne pas le principale de mon projet et effectivement c'est la chose sur la qu'elle je suis le moins à l'aise mais bon j'ai quand meme compris le début enfin il me semble  
 
sbit  TRIPODE  at  RC2_bit;
sbit  TRIPODE_Direction  at    TRISC2_bit;
sbit  A  at  RC4_bit;
sbit  A_Direction  at    TRISC4_bit;
sbit  B  at  RC5_bit;
sbit  B_Direction  at    TRISC5_bit;
sbit  Passage_OK  at  RC0_bit;
sbit  Passage_OK_Direction  at    TRISC0_bit;
 
sbit  CDE_ELECTROAIMANT  at  RA0_bit;
sbit  CDE_ELECTROAIMANT_Direction  at    TRISA0_bit;
 
 
void main() {
     unsigned  char Fin_Cycle;
     /************ Configuration des ports utilisés en I/O numériques  ********/
     ANSEL = 0;
     CMCON0 = 7;
     /********** Configuration (sens de transfert) des entrées numériques *****/
     A_Direction = 1;
     B_Direction = 1;
     TRIPODE_Direction = 1;
     /********** Configuration (sens de transfert) des sorties numériques *****/
     CDE_ELECTROAIMANT_Direction = 0;
     Passage_OK_Direction = 0;
     
     CDE_ELECTROAIMANT = 0;
     Passage_OK = 0;
     Delay_ms(2000);


Message édité par valentincaceres le 22-03-2017 à 17:03:34
Reply

Marsh Posté le 22-03-2017 à 17:05:11    

Alors oui j'utilise bien MikroC pro for PIC et du coup j'utilise bien un PIC (PIC16F688) !
 
Alors mon projet consiste à contrôlé l’accès a la cantine ! alors pour ça j’utilise un tripode !
 
 
Alors l’orque qu'un élève est autoriser à passer le tripode doit se débloquer et lorsque l’élève n'est pas autorisé le tripode se bloque ! Alors c'est justement l'électroaimant qui est chargé de bloquer ou de débloquer le tripode en fonction de ! De plus le système est aussi composé d'un capteur optique qui qu'en à lui est chargé de déterminer le sens de rotation !


Message édité par valentincaceres le 22-03-2017 à 17:05:23
Reply

Marsh Posté le 23-03-2017 à 00:04:20    

Du coup c'est quoi exactement ton problème?
Disons le premier point ou tu buttes.


---------------
sheep++
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed