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

Projet presque terminé



  1. #1
    jo-electrons

    Projet presque terminé


    ------

    Bonjour,

    Actuellement, je créer un programme pour une entreprise et j'ai quelques problèmes en language C:
    -il faudrait que je puisse arreter et démarrer le temps et prendre a un moment que j'ai défini une valeur du temps.
    -avec la derniere instruction delay, il faudrait que je puisse déterminer avec les temps précedents le temps a attendre pour vérifier la prochaine partie du signal donné en piece jointe.

    Je dois aussi trouver un microcontroleur qui reproduise pour lui le signal qu'on lui donne en entrée avec les bonnes valeurs de tensions.
    J'aimerais retrouver les meme valeurs de tension sans avoir a utiliser de CAN mais bon....
    Je suis dans la catégorie ATMEL j'ai pris comme micro un ATMEGA8515 mais il ne fait pas ce que je veux;(

    Merci d'avance pour les fans de programmation

    -----
    Images attachées Images attachées

  2. #2
    jo-electrons

    Re : Projet presque terminé

    programme:

    /****************************** ***********************
    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>


    // Declare your global variables here
    unsigned char convertiV1,convertiV2,nombre,c onvertT1,NbreInstruction,temp;


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

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

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

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

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

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

    // 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;



    //Début


    while (PORTB.4==0)
    {
    while((PINA.1<=0 && PINA.2<=0)) //teste d'alimentation système en tension et courant
    {
    PORTB.1=1; //led orange allumé, rouge éteinte
    PORTB.2=0; //si la led verte est allumé sa veut dire qu'on a déja effectué le programme(déja une verification)
    }

    PORTB.1=0; //led verte allumée et orange éteinte
    PORTB.3=1;

    reset ou démarrer le temps
    //--------------------------------------------------------//
    while(convertT1<0 && nombre<=5)
    {
    while(convertT1<0)
    {
    nombre=0;
    delay_ms(19);
    convertiV2=PINA.3; //On prend un morceau du signal
    convertT1=convertiV1-convertiV2;
    PORTB.1=1;
    PORTB.3=0;
    nombre++; //on reprend l'ancienne valeur pour ne pas faire une variable de plus
    convertiV1 = convertiV2;
    prise du temps
    if(temp==1)
    {
    PORTB.2=1; //led rouge et alerte allumée
    PORTB.1=0;
    PORTB.4=1;
    }
    //led orange allumée
    }
    PORTB.2=1; //led rouge et alerte allumée
    PORTB.1=0;
    PORTB.4=1;
    }

    //-------------------------------------------------------------//
    while(convertT1>0 && nombre<=5)
    {
    while(convertT1>0)
    {
    nombre=0;
    delay_ms(19);
    convertiV2=PINA.3; //On prend un morceau du signal
    convertT1=convertiV1-convertiV2;
    PORTB.1=1;
    PORTB.3=0;
    nombre++; //on reprend l'ancienne valeur pour ne pas faire une variable de plus
    convertiV1 = convertiV2;
    prise du temps
    if(temp==1)
    {
    PORTB.2=1; //led rouge et alerte allumée
    PORTB.1=0;
    PORTB.4=1;
    }
    //led orange allumée
    }
    PORTB.2=1; //led rouge et alerte allumée
    PORTB.1=0;
    PORTB.4=1;
    }
    //-----------------------------------------------------------//
    while(convertT1>0 && nombre<=5)
    {
    while(convertT1>0)
    {
    nombre=0;
    delay_ms(19);
    convertiV2=PINA.3; //On prend un morceau du signal
    convertT1=convertiV1-convertiV2;
    PORTB.1=1;
    PORTB.3=0;
    nombre++; //on reprend l'ancienne valeur pour ne pas faire une variable de plus
    convertiV1 = convertiV2;
    prise du temps
    if(temp==1)
    {
    PORTB.2=1; //led rouge et alerte allumée
    PORTB.1=0;
    PORTB.4=1;
    }
    //led orange allumée
    }
    PORTB.2=1; //led rouge et alerte allumée
    PORTB.1=0;
    PORTB.4=1;
    }


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

    tmp=1-temp // delay est déterminé par ce nombre mais est-ce que je pourrais l'introduire dedans par une variable
    delay_ms(65); //tempo de 65ms car tension d'appel

    démarrage timer2

    while(PINA.4<11 && PINA.4>9)
    {
    PORTB.1=1;
    prise du temps
    if(temp2==1)
    {
    PORTB.2=1; //led rouge et alerte allumée
    PORTB.1=0;
    PORTB.4=1;
    }
    }
    }
    }

  3. #3
    jo-electrons

    Re : Projet presque terminé

    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>
           
    
    // Declare your global variables here
    unsigned char convertiV1,convertiV2,nombre,convertT1,NbreInstruction,temp;
     
    
    void main(void)
    {
    // Declare your local variables here
    
    // Port A initialization
    // Func7=Out Func6=Out Func5=Out Func4=In Func3=In Func2=In Func1=In Func0=Out 
    // State7=0 State6=0 State5=0 State4=T State3=T State2=T State1=T State0=0 
    PORTA=0x00;
    DDRA=0xE1;
    
    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out 
    // State7=T State6=T State5=T State4=T State3=0 State2=0 State1=0 State0=0 
    PORTB=0x00;
    DDRB=0x0F;
    
    // Port C initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTC=0x00;
    DDRC=0x00;
    
    // Port D initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTD=0x00;
    DDRD=0x00;
    
    // Port E initialization
    // Func2=In Func1=In Func0=In 
    // State2=T State1=T State0=T 
    PORTE=0x00;
    DDRE=0x00;
    
    // 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;
       
    
    
    //Début
    
    
    while (PORTB.4==0) 
    {                          
    while((PINA.1<=0 && PINA.2<=0))        //teste d'alimentation système en tension et courant
    	{
    		PORTB.1=1;             //led orange allumé, rouge éteinte
    		PORTB.2=0;             //si la led verte est allumé sa veut dire qu'on a déja effectué le programme(déja une verification)
    	}
     
    	PORTB.1=0;                     //led verte allumée et orange éteinte
    	PORTB.3=1;
    
     reset ou démarrer le temps                                                     
     //--------------------------------------------------------//      
    while(convertT1<0 && nombre<=5)
    {      
            while(convertT1<0)
            { 
    	        nombre=0;
    		delay_ms(19); 
     		convertiV2=PINA.3;                         //On prend un morceau du signal
    		convertT1=convertiV1-convertiV2; 
    		PORTB.1=1;
    		PORTB.3=0;
    		nombre++;                               //on reprend l'ancienne valeur pour ne pas faire une variable de plus
    		convertiV1 = convertiV2;
    		prise du temps
    		if(temp==1)
    	                {
    	                PORTB.2=1;                         //led rouge et alerte allumée
    	                PORTB.1=0;
    	                PORTB.4=1;
                            } 
                            //led orange allumée
    	}
    		PORTB.2=1;                         //led rouge et alerte allumée
    		PORTB.1=0;
    		PORTB.4=1;		
    }
        
     //-------------------------------------------------------------//      
    while(convertT1>0 && nombre<=5)
    {      
            while(convertT1>0)
            { 
    	        nombre=0;
    		delay_ms(19); 
     		convertiV2=PINA.3;                         //On prend un morceau du signal
    		convertT1=convertiV1-convertiV2; 
    		PORTB.1=1;
    		PORTB.3=0;
    		nombre++;                               //on reprend l'ancienne valeur pour ne pas faire une variable de plus
    		convertiV1 = convertiV2;
    		prise du temps
    		if(temp==1)
    	                {
    	                PORTB.2=1;                         //led rouge et alerte allumée
    	                PORTB.1=0;
    	                PORTB.4=1;
                            } 
                            //led orange allumée
    	}
    		PORTB.2=1;                         //led rouge et alerte allumée
    		PORTB.1=0;
    		PORTB.4=1;		
    }
      //-----------------------------------------------------------//
    while(convertT1>0 && nombre<=5)
    {      
            while(convertT1>0)
            { 
    	        nombre=0;
    		delay_ms(19); 
     		convertiV2=PINA.3;                         //On prend un morceau du signal
    		convertT1=convertiV1-convertiV2; 
    		PORTB.1=1;
    		PORTB.3=0;
    		nombre++;                               //on reprend l'ancienne valeur pour ne pas faire une variable de plus
    		convertiV1 = convertiV2;
    		prise du temps
    		if(temp==1)
    	                {
    	                PORTB.2=1;                         //led rouge et alerte allumée
    	                PORTB.1=0;
    	                PORTB.4=1;
                            } 
                            //led orange allumée
    	}
    		PORTB.2=1;                         //led rouge et alerte allumée
    		PORTB.1=0;
    		PORTB.4=1;		
    }
    
    
    	//-------------------------------------------------------//
    
    tmp=1-temp   // delay est déterminé par ce nombre mais est-ce que je pourrais l'introduire dedans par une variable
    delay_ms(65); //tempo de 65ms car tension d'appel
     
    démarrage timer2
            	
    		while(PINA.4<11 && PINA.4>9)
    		{
    		PORTB.1=1;
    		prise du temps
    		        if(temp2==1)
    	                {
    	                PORTB.2=1;                         //led rouge et alerte allumée
    	                PORTB.1=0;
    	                PORTB.4=1;
                            } 
    		}  	 	
    }
    }

Discussions similaires

  1. [TERMINE]émetteur/récepteur AM
    Par archiviste dans le forum Projets électroniques
    Réponses: 27
    Dernier message: 24/01/2015, 15h43
  2. [Terminé] Wattmètre précis et sensible
    Par Tropique dans le forum Projets électroniques
    Réponses: 16
    Dernier message: 01/09/2010, 08h15
  3. [Terminé] Mini programmateur
    Par letitandu01 dans le forum Projets électroniques
    Réponses: 18
    Dernier message: 02/08/2008, 16h24
  4. terminé les virus !!!???
    Par dubonnair dans le forum Logiciel - Software - Open Source
    Réponses: 10
    Dernier message: 28/03/2005, 09h16
Découvrez nos comparatifs produits sur l'informatique et les technologies.