Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

programmation en C (vérification...)



  1. #1
    jo-electrons

    programmation en C (vérification...)


    ------

    Bonjour,

    Je suis actuellement en stage en entreprise de BTS système électronique fin de 1ère année. Mon projet consiste à éviter les remplacements systématiques des freins à disque en traitant un signal délivré par la bobine placé avant le frein pour fermer le frein de facon magnétique.

    Je me suis donc proposé à la place de faire une enorme plaque de faire un microcontroleur à la place.
    Le cahier des charges et l'organigramme sont en pièces jointes.

    Mon seul problème est la mise en oeuvre des timers. Ya-t-il une limite de timer? Surement au niveau hardware mais combien pour un microcontrôleur ATMEL 8515(ou ATMEGA).


    Mon programme est le suivant:
    :
    /****************************** ***********************
    This program was produced by the
    CodeWizardAVR V1.25.7a Evaluation
    Automatic Program Generator
    © Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com

    Project :
    Version :
    Date : 05/06/2009
    Author : Freeware, for evaluation and non-commercial use only
    Company :
    Comments:


    Chip type : ATmega8515
    Program type : Application
    Clock frequency : 8,000000 MHz
    Memory model : Small
    External SRAM size : 0
    Data Stack size : 128
    ****************************** ***********************/

    #include <mega8515.h>
    #include <delay.h>
    #include <math.h>
    #include <time.h>

    #define freinV ~PINA
    #define imageI ~PINA
    #define convertiV ~PINA
    #define economiV ~PINA
    #define ledV ~PINB
    #define ledR ~PINB
    #define ledO ~PINB
    // Declare your global variables here

    void main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // Port A initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=In
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=T
    PORTA=0x00;
    DDRA=0xFE;

    // Port B initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
    PORTB=0x00;
    DDRB=0xFF;

    // Port C initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
    PORTC=0x00;
    DDRC=0xFF;

    // Port D initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
    PORTD=0x00;
    DDRD=0xFF;

    // Port E initialization
    // Func2=Out Func1=Out Func0=Out
    // State2=0 State1=0 State0=0
    PORTE=0x00;
    DDRE=0x07;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=FFh
    // OC0 output: Disconnected
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer 1 Stopped
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer 1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: Off
    MCUCR=0x00;
    EMCUCR=0x00;

    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;

    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;

    while (1)
    {
    // Place your code here
    if((freinV==2) && (imageI==3)) {ledO==1} //alimentation correcte?
    else{ledR==1 && return if}
    mise en marche du timer
    }


    if (timer==0)
    {
    convertiV1==convertiV;
    }
    else if (timer==1)
    {
    convertiV2==convertiV;
    convertiV2-convertV1>0;
    if(convertiV2-convertV1>0) go on : ledR=1 && return; //on regarde si il y a une pente montante sur le signal
    }
    else if (timer==2)
    {
    convertiV3==convertiV;
    convertiV3-convertiV2>0;
    } if(convertiV3-convertiV2>0) go on : ledR=1 && return; //on regarde si il y a une pente montante sur le signal
    else if (timer==3)
    {
    convertiV4==convertiV;
    convertiV4-convertiV3>0;
    if(convertiV4-convertiV3>0) go on : ledR=1 && return; //on regarde si il y a une pente montante sur le signal
    }
    else if (timer=4)
    {
    convertiV5==convertiV;
    convertiV5-convertiV4>0;
    if(convertiV5-convertiV4>0) go on : ledR=1 && return; //on regarde si il y a une pente montante sur le signal
    }
    else if (timer=5)
    {
    convertiV6==convertiV;
    convertiV6-convertiV5>0;
    if(convertiV6-convertiV5>0) go on : ledR=1 && return; //on regarde si il y a une pente montante sur le signal
    }
    else // Pourrais-je le virer? parce que je ne sais quoi mettre le déroulement ne peux pas avoir de valeurs aléatoire selon le timer
    {
    printf("Je n'ai aucune phrase de prete pour ton age ");
    }

    ledO=1

    mise en marche timer2
    if (timer==0)
    {
    convertiV1==convertiV;
    }
    else if (timer==1)
    {
    convertiV2==convertiV;
    convertiV2-convertV1<0;
    if(convertiV2-convertV1<0) go on : ledR=1 && return;
    }
    else if (timer==2)
    {
    convertiV3==convertiV;
    convertiV3-convertiV2<0;
    } if(convertiV3-convertiV2<0) go on : ledR=1 && return;
    else if (timer==3)
    {
    convertiV4==convertiV;
    convertiV4-convertiV3<0;
    if(convertiV4-convertiV3<0) go on : ledR=1 && return;
    }
    else if (timer=4)
    {
    convertiV5==convertiV;
    convertiV5-convertiV4<0;
    if(convertiV5-convertiV4<0) go on : ledR=1 && return;
    }
    else if (timer=5)
    {
    convertiV6==convertiV;
    convertiV6-convertiV5<0;
    if(convertiV6-convertiV5<0) go on : ledR=1 && return;
    }
    else
    {
    printf("Je n'ai aucune phrase de prete pour ton age ");
    }


    mise en marche timer3
    if (timer==0)
    {
    convertiV1==convertiV;
    }
    else if (timer==1)
    {
    convertiV2==convertiV;
    convertiV2-convertV1>0;
    if(convertiV2-convertV1>0) go on : ledR=1 && return;
    }
    else if (timer==2)
    {
    convertiV3==convertiV;
    convertiV3-convertiV2>0;
    } if(convertiV3-convertiV2>0) go on : ledR=1 && return;
    else if (timer==3)
    {
    convertiV4==convertiV;
    convertiV4-convertiV3>0;
    if(convertiV4-convertiV3>0) go on : ledR=1 && return;
    }
    else if (timer=4)
    {
    convertiV5==convertiV;
    convertiV5-convertiV4>0;
    if(convertiV5-convertiV4>0) go on : ledR=1 && return;
    }
    else if (timer=5)
    {
    convertiV6==convertiV;
    convertiV6-convertiV5>0;
    if(convertiV6-convertiV5>0) go on : ledR=1 && return;
    }
    else
    {
    printf("Je n'ai aucune phrase de prete pour ton age ");
    }

    ledO=1;


    delay_65ms;

    (economiV<9 && economiV>12)? ledV=1:ledR=1;
    delay_20ms;
    (economiV<9 && economiV>12)? ledV=1:ledR=1;
    delay_20ms;
    (economiV<9 && economiV>12)? ledV=1:ledR=1;
    delay_20ms;
    (economiV<9 && economiV>12)? ledV=1:ledR=1 && return prog;
    delay_20ms;

    return prog;

    }





    Sur cette page de programme, bonne journée

    -----
    Images attachées Images attachées
    Fichiers attachés Fichiers attachés

  2. Publicité
  3. #2
    Jack

    Re : programmation en C (vérification...)

    Mon seul problème est la mise en oeuvre des timers. Ya-t-il une limite de timer?
    Qu'appelles-tu une limite de timer?

    A+

  4. #3
    jo-electrons

    Re : programmation en C (vérification...)

    Au niveau matériel, j'ai regardé, il y a que 2 timer sur le 8515!
    Sinon je suis entrain de regarder les erreurs faitent dans le programme avec le logiciel Cvavr mais bon il y a des choses bizarres.

    Programme à corriger :


    /****************************** ***********************
    This program was produced by the
    CodeWizardAVR V1.25.7a Evaluation
    Automatic Program Generator
    © Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com

    Project :
    Version :
    Date : 05/06/2009
    Author : Freeware, for evaluation and non-commercial use only
    Company :
    Comments:


    Chip type : ATmega8515
    Program type : Application
    Clock frequency : 8,000000 MHz
    Memory model : Small
    External SRAM size : 0
    Data Stack size : 128
    ****************************** ***********************/

    #include <mega8515.h>
    #include <delay.h>
    #include <math.h>


    #define freinV ~PINA
    #define imageI ~PINA
    #define convertiV ~PINA
    #define economiV ~PINA
    #define ledV ~PINB
    #define ledR ~PINB
    #define ledO ~PINB
    // Declare your global variables here
    char convertiV2;convertiV3;converti V4;convertiV5;convertiV6;conve rtiV7;convertiV8;convertiV9;
    convertiV10;convertiV11;conver tiV12;convertT1;convertT2;conv ertT3;convertT4;convertT5;conv ertT6;
    convertT7;convertT8;convertT9; convertT10;convertT11;convertV 1;convertV2;convertV3;convertV 4;convertV5;
    convertV6;convertV7;convertV8; convertV9;convertV10;convertV1 1;convertV12;

    void main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // Port A initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=In
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=T
    PORTA=0x00;
    DDRA=0xFE;

    // Port B initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
    PORTB=0x00;
    DDRB=0xFF;

    // Port C initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
    PORTC=0x00;
    DDRC=0xFF;

    // Port D initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
    PORTD=0x00;
    DDRD=0xFF;

    // Port E initialization
    // Func2=Out Func1=Out Func0=Out
    // State2=0 State1=0 State0=0
    PORTE=0x00;
    DDRE=0x07;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=FFh
    // OC0 output: Disconnected
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer 1 Stopped
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer 1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: Off
    MCUCR=0x00;
    EMCUCR=0x00;

    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;

    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    }

    void frein(void)
    {


    if((freinV==2) && (imageI==3))
    {ledO==1;} //alimentation correcte?
    else
    {ledR==1 && goon if};



    convertiV1==convertiV;

    delay_ms(19);

    convertiV2==convertiV;
    convertT1==convertV1-convertV2
    (convertT1>0)? go on:ledR=1 && return;

    delay_ms(18);

    convertiV3==convertiV;
    convertT2==convertV2-convertV3
    (convertT2>0)? go on:ledR=1 && return; //on regarde si il y a une pente montante sur le signal

    delay_ms(19);

    convertiV4==convertiV;
    convertT3==convertV3-convertV4
    (convertT3>0)? go on:ledR=1 && return; //on regarde si il y a une pente montante sur le signal

    delay_ms(18);

    convertiV5==convertiV;
    convertT4==convertV4-convertV5
    (convertT4>0)? go on:ledR=1 && return; //on regarde si il y a une pente montante sur le signal

    delay_ms(19);

    convertiV6==convertiV;
    convertT5==convertV5-convertV6
    (convertT5>0)? ledO=1:ledR=1 && return; //on regarde si il y a une pente montante sur le signal





    convertiV7==convertiV;

    delay_ms(6);

    convertiV8==convertiV;
    convertT6==convertV7-convertV8
    (convertT6<0)? go on:ledR=1 && return;

    delay_ms(5);

    convertiV9==convertiV;
    convertT7==convertV8-convertV9
    (convertT7<0)? go on:ledR=1 && return;

    delay_ms(6);

    convertiV10==convertiV;
    convertT8==convertV9-convertV10
    (convertT8<0)? go on:ledR=1 && return;

    delay_ms(5);

    convertiV11==convertiV;
    convertT9==convertV10-convertV11
    (convertT9<0)? go on:ledR=1 && return;

    delay_ms(6);

    convertiV12==convertiV;
    convertT10==convertV11-convertV12
    (convertT10<0)? ledO=1:ledR=1 && return;






    delay_ms(65);

    (economiV<9 && economiV>12)? ledV=1:ledR=1;
    delay_ms(20);
    (economiV<9 && economiV>12)? ledV=1:ledR=1;
    delay_ms(20);
    (economiV<9 && economiV>12)? ledV=1:ledR=1;
    delay_ms(20);
    (economiV<9 && economiV>12)? ledV=1:ledR=1 && return prog;
    delay_ms(20);
    }}

  5. #4
    mdpai

    Re : programmation en C (vérification...)

    meme s'il y a que 2 timer materiel, avec ca, tu peux faire bcp plus de timer logiciel!

  6. #5
    jo-electrons

    Re : programmation en C (vérification...)

    Voici mon nouveau programme:
    Code:
    /****************************** ***********************
    This program was produced by the
    CodeWizardAVR V1.25.7a Evaluation
    Automatic Program Generator
    © Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com

    Project :
    Version :
    Date : 05/06/2009
    Author : Freeware, for evaluation and non-commercial use only
    Company :
    Comments:


    Chip type : ATmega8515
    Program type : Application
    Clock frequency : 8,000000 MHz
    Memory model : Small
    External SRAM size : 0
    Data Stack size : 128
    ****************************** ***********************/

    #include <mega8515.h>
    #include <delay.h>
    #include <math.h>


    #define freinV ~PINA.1
    #define imageI ~PINA.2
    #define convertiV ~PINA.3
    #define economiV ~PINA.4
    #define ledO ~PORTB.1
    #define ledR ~PORTB.2
    #define ledV ~PORTB.3
    #define warning ~PORTB.4

    // Declare your global variables here
    unsigned char convertiV1,convertiV2,converti V3,convertiV4,convertiV5,conve rtiV6,convertiV7,convertiV8,co nvertiV9;
    unsigned char convertiV10,convertiV11,conver tiV12,convertT1,convertT2,conv ertT3,convertT4,convertT5,conv ertT6;
    unsigned char convertT7,convertT8,convertT9, convertT10,convertV1,convertV2 ,convertV3,convertV4,convertV5 ;
    unsigned char convertV6,convertV7,convertV8, convertV9,convertV10,convertV1 1,convertV12,ledRR,ledOO,ledVV ;

    void main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // Port A initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=In
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=T
    PORTA=0x00;
    DDRA=0xFE;

    // Port B initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
    PORTB=0x00;
    DDRB=0xFF;

    // Port C initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
    PORTC=0x00;
    DDRC=0xFF;

    // Port D initialization
    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
    PORTD=0x00;
    DDRD=0xFF;

    // Port E initialization
    // Func2=Out Func1=Out Func0=Out
    // State2=0 State1=0 State0=0
    PORTE=0x00;
    DDRE=0x07;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=FFh
    // OC0 output: Disconnected
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer 1 Stopped
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer 1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: Off
    MCUCR=0x00;
    EMCUCR=0x00;

    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;

    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;





    while((freinV<=0 && imageI<=0)) //alimentation correcte?
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;

    //--------------------------------------------------------//

    convertiV1=convertiV;

    delay_ms(19);


    convertiV2=convertiV;
    convertT1=convertV1-convertV2;
    while(convertT1<=0) //Pente montante?
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}


    delay_ms(18);

    convertiV3=convertiV;
    convertT2=convertV2-convertV3;
    while(convertT2<=0) //
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}

    delay_ms(19);

    convertiV4=convertiV;
    convertT3=convertV3-convertV4;
    while(convertT3<=0) //
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}

    delay_ms(18);

    convertiV5=convertiV;
    convertT5=convertV4-convertV5;
    while(convertT4<=0) //
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}

    delay_ms(19);

    convertiV6=convertiV;
    convertT5=convertV5-convertV6;
    while(convertT5<=0)
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}

    //--------------------------------------------------------------//


    convertiV7=convertiV;

    delay_ms(6);

    convertiV8=convertiV;
    convertT6=convertV7-convertV8;
    while(convertT6>=0) //pente descendante?
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}

    delay_ms(5);

    convertiV9=convertiV;
    convertT7=convertV8-convertV9;
    while(convertT7>=0)
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}

    delay_ms(6);

    convertiV10=convertiV;
    convertT8=convertV9-convertV10;
    while(convertT8>=0)
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}

    delay_ms(5);

    convertiV11=convertiV;
    convertT9=convertV10-convertV11;
    while(convertT9>=0)
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}

    delay_ms(6);

    convertiV12=convertiV;
    convertT10=convertV11-convertV12;
    while(convertT10>=0)
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}

    //--------------------------------------------------------//

    convertiV1=convertiV;

    delay_ms(19);


    convertiV2=convertiV;
    convertT1=convertV1-convertV2;
    while(convertT1<=0) //Pente montante?
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}

    delay_ms(18);

    convertiV3=convertiV;
    convertT2=convertV2-convertV3;
    while(convertT2<=0) //
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}

    delay_ms(19);

    convertiV4=convertiV;
    convertT3=convertV3-convertV4;
    while(convertT3<=0) //
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}

    delay_ms(18);

    convertiV5=convertiV;
    convertT5=convertV4-convertV5;
    while(convertT4<=0) //
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}

    delay_ms(19);

    convertiV6=convertiV;
    convertT5=convertV5-convertV6;
    while(convertT5<=0)
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;

    //-------------------------------------------------------------//



    delay_ms(65);

    while(9<economiV<12) //tension d'économie normalement à 10V correcte?
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}

    delay_ms(20);

    while(9<economiV<12)
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}

    delay_ms(20);

    while(9<economiV<12)
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}

    delay_ms(20);

    while(9<economiV<12)
    {ledRR=1;}
    ledOO=1;
    PORTB.2=ledRR;
    PORTB.1=ledOO;
    if(ledRR==1)
    {ledOO=0;
    PORTB.4=1;
    return;}

    delay_ms(20);

    while(9<economiV<12)
    {ledRR=1;}
    ledVV=1;
    PORTB.2=ledRR;
    PORTB.3=ledVV;
    if(ledVV==1)
    {ledOO=0;
    PORTB.3=1;
    return;} //led verte =>frein fonctionne correctement , si led orange en vérification , si led rouge =>mauvais fonctionnement
    }

    Est-ce que le return fait revenir au départ du programme?

  7. A voir en vidéo sur Futura
  8. #6
    jo-electrons

    Re : programmation en C (vérification...)

    A mon sens je dois alléger les répétitions de groupe d'instruction mais aussi les variables qui sont vraiment de trop!

  9. Publicité

Sur le même thème :

Discussions similaires

  1. vérification alim
    Par jef9200 dans le forum Électronique
    Réponses: 4
    Dernier message: 30/11/2008, 21h48
  2. un vérification
    Par sarah27 dans le forum Mathématiques du collège et du lycée
    Réponses: 1
    Dernier message: 22/09/2008, 22h18
  3. Verification
    Par Zabel' dans le forum Mathématiques du collège et du lycée
    Réponses: 3
    Dernier message: 30/09/2007, 17h09
  4. Verification
    Par jkidd dans le forum Chimie
    Réponses: 2
    Dernier message: 27/05/2006, 22h36
  5. verification
    Par gwenael.g3 dans le forum Chimie
    Réponses: 8
    Dernier message: 09/12/2004, 18h40