Programme Tripode C - C - Programmation
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.
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).
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);
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 !
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.
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 = ?;
}
}