Programme en C : Problème synthaxe? - Page 2
Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 55 sur 55

Programme en C : Problème synthaxe?



  1. #31
    freepicbasic

    Re : Programme en C : Problème synthaxe?


    ------

    Citation Envoyé par jo-electrons Voir le message
    Je ne sais pas comment comprendre entre quoi est mis PINA.4
    if(9<PINA.4<12)
    Est-elle compris entre 9 et 12 ou à l'exterieur de 9 et 12 je cherche entre 9 et 12 moi. Je n'arrive pas a lire cette equation.

    apparement pinA.4 lit une valeur du convertisseur analogique digital, à vérifier si effectivement il le fait...
    Sur le pic on lit un registre spécifique , mais peut être que le compilateur le comprend , je n'ai pas vu de déclaration comme quoi PINA.4 est une AN/D

    drole de syntaxe ;
    if(9<PINA.4<12)

    J'aurais écris comme ça;
    if( (PINA.4>9) && (PINA.4<12) )

    -----
    A+, pat

  2. #32
    jo-electrons

    Re : Programme en C : Problème synthaxe?

    Je reste encore bloqué sur la dernière chose qui est importante au fonctionnement de mon programme:
    Les interruptions car c'est ce qui me permet de redémarrer le programme après un arret....une alarme

  3. #33
    jo-electrons

    Re : Programme en C : Problème synthaxe?

    Ok bon le if est remplacé mais je ne comprend pas cette histoire.
    En faite je contrôle des tensions en entré que je modélise par des bits dans un logiciel pour tester si le programme est bon ou non je change les PIN et les PORT des PORTS tout simplement.
    Disons que j'ai un petit problème au niveau de la pente descendante car quand la comparaison est à 0 sa ne devrait pas effectuer le else mais l'instruction en dessous du if.
    De plus, comme l'a écrit la personne qui vient de se joindre a la discussion, j'ai pris son expression et je l'ai testé toujour avec des bits... je n'ai pas trouvé sa convincant mais des bits représentent quel niveau de tension
    0=?
    1=?

  4. #34
    jo-electrons

    Re : Programme en C : Problème synthaxe?

    J'ai aussi changé toutes les variables qui étaient affectué au PORT...
    J'ai mis directement PORTB.1=...1 ou 0 voila
    Sa me permet d'économiser quelques lignes

  5. #35
    freepicbasic

    Re : Programme en C : Problème synthaxe?

    il ya surement des exemples avec le compilateur pour lire une entrée analogique et pour faire une interruption.

    une entrée logique bascule de 0 à 1 à partir d'un seuil (voir le datasheet ) et ne renvoie qu'un bit pas une valeur sur 1 octet.
    A+, pat

  6. #36
    Jack
    Modérateur

    Re : Programme en C : Problème synthaxe?

    Il faut que tu trouves le fichier qui définit tes PortA, PortB, PINA, etc.
    C'est un fichier d'entête (.h donc) qui doit être inclus directement ou non dans ton source.

  7. #37
    Jack
    Modérateur

    Re : Programme en C : Problème synthaxe?

    Bon, c'est "mega8515.h"

    Tu peux le mettre en PJ ?

  8. #38
    jo-electrons

    Re : Programme en C : Problème synthaxe?

    Oui vais regarder la datasheet du composant ATMEGA8515 si sa vous prend de regarder en meme tmeps que moi^^.

    Pour ce qui est du compilateur non il n'y a pas d'exemple sa m'embette car les interruptions sont le dernier problème que j'ai.

    Pour les ports:

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


    C'est tout ce qu'il y a en entete sur le programme!

  9. #39
    jo-electrons

    Re : Programme en C : Problème synthaxe?

    Voila pour la doc!
    Je répond à 5h30 des que je rentre chez moi a tout a l'heure

    je part du stage
    Images attachées Images attachées

  10. #40
    Jack
    Modérateur

    Re : Programme en C : Problème synthaxe?

    C'est tout ce qu'il y a dans "mega8515.h"?

  11. #41
    freepicbasic

    Re : Programme en C : Problème synthaxe?

    Citation Envoyé par jack Voir le message
    c'est tout ce qu'il y a dans "mega8515.h"?
    lol
    A+, pat

  12. #42
    Jack
    Modérateur

    Re : Programme en C : Problème synthaxe?

    Qu'y a-t-il de drôle?

    Normalement ce genre de fichier doit faire plusieurs centaines de lignes.

    A+

  13. #43
    freepicbasic

    Re : Programme en C : Problème synthaxe?

    Citation Envoyé par Jack Voir le message
    Qu'y a-t-il de drôle?

    Normalement ce genre de fichier doit faire plusieurs centaines de lignes.

    A+
    il a envoyé un datasheet simplifié, le complet fait 250 pages.
    Et ce n'est pas le .h
    A+, pat

  14. #44
    Jack
    Modérateur

    Re : Programme en C : Problème synthaxe?

    ok, mais sans ce fichier on est sur de rien.

  15. #45
    jo-electrons

    Re : Programme en C : Problème synthaxe?

    Sa ne sert a rien de se chamailler ^^. J'en suis toujour au meme problème : les interruptions que je n'arrive pas a créer en ne parlant pas du timer pour le moment!
    Dsl d'avoir répondu ce matin mais hier j'ai eu un imprevu

  16. #46
    jo-electrons

    Re : Programme en C : Problème synthaxe?

    Aussi une petite question à propos des bits pour tester le programme il faudrait que je remplace tout les nombre >1 par 1 ou 0?
    J'aimerais le tester sans avoir besoin de commander le composant , le programmateur....si vous voyez ce que je veux dire.

    Si je ne trouve pas d'interruption mon programme tombe a l'eau;(

  17. #47
    freepicbasic

    Re : Programme en C : Problème synthaxe?

    Personnellement j'utilise des pics, pour pouvoir t'aider
    sans les informations demandées ça va être dur...

    Il nous faut le "mega8515.h" , je ne m'ai pas trouvé sur le net , il est utilisé très souvent mais personne le publie.
    De quel compilateur s'agit il ?
    y a t il des exemples avec ?

    Quand à la lecture des entrées analogiques , il faut surement faire une procédure.

    Et travailler sans le matériel ça me parait un peu la mission impossible.
    on peu toujours analyser le programme et dire ce qui nous semble suspect.

    D'ailleursq les remarques de jack et moi sont identiques , chacun son point de vue légèrement différent.
    A+, pat

  18. #48
    jo-electrons

    Re : Programme en C : Problème synthaxe?

    Je ne voix pas vraiment ce que vous voulez , le language qu'utilise le microcontroleur ? je ne crois pas que je l'ai en ma possession!
    J'utilise Cvavr pour programmer en C et avr studio pour tester le programme , on peut aussi progammer en assembleur dessus.
    Des exemples non il n'y a rien sur le logiciel Cvavr mais sur avr studio oui en assembleur il y a toute les instructions mais vu que je programme en C.

    Disons que je suis en stage et commander le matériel sans être sur de pouvoir réaliser le programme dans un 1er temps je ne vais pas aller titiller le personnel pour aller faire une commande!
    Enfin pour moi je ne veux pas prendre de risque de dépense alors que sa se trouve sa ne marchera pas!! Tu peut me comprendre
    De la programmation je n'en aifait que 3 mois ou 4 en 1ère année de BTS.

    Malgré tous le C , j'ai l'impression que en dehors de if... toute ces choses la il n'y as pas un tas d'instructions...

    C'est vrai que je me pose encore la question comment je vais me débrouiller pour faire sa surtout que en fete la c'est ma 3ème semaine qui se termine :
    -1ère semaine étude du projet
    -2ème étude ampli OP(abandonné choisi plus simple^^)enfin selon moi
    -3ème semaine programmation

    En tout j'ai 6 semaine mais revenons a nos entrées analogiques, je ne saisi pas trop comment le micro marche en réalité par rapport au niveaux de tension qu'on lui envoye c'est comme les circuit CMOS a seuil de basculement?
    Si oui, sa va etre dur de gérer le programme avec un signal completement aléatoire a ce niveau la en faite.....

  19. #49
    jo-electrons

    Re : Programme en C : Problème synthaxe?

    Tient tant que je me souviens mon prof nous avait donné plusieurs feuilles avec les instructions , je regarderé chez moi entre midi

    sa doit etre sa ce dont vous parlez : mega8515.h

  20. #50
    Jack
    Modérateur

    Re : Programme en C : Problème synthaxe?

    Je crois qu'on se disperse beaucoup entre les interruptions, les timers, les entrées analogiques ...

    Commençons par ton problème d'entrée analogiques:
    mais revenons a nos entrées analogiques, je ne saisi pas trop comment le micro marche en réalité par rapport au niveaux de tension qu'on lui envoye c'est comme les circuit CMOS a seuil de basculement?
    Dis-nous ce qui entre et ce que tu veux en faire déjà. On avisera ensuite.

    A+

  21. #51
    jo-electrons

    Re : Programme en C : Problème synthaxe?

    J'ai la liste des instructions en assembleur mais non en C .
    Je l'ai retrouvé.

    Mon programme ressemble maintenant a sa en moin long:

    /****************************** ***********************
    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;
    unsigned char convertT1,NbreInstruction;


    void main(void)
    {
    // Declare your local variables here
    char i;
    // 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 et verte éteinte
    PORTB.2=0;
    PORTB.3=0;
    }

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


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

    convertiV1=PINA.3;
    NbreInstruction = 15;//Apparament //On refait X fois la fonction
    for(i=0;i<NbreInstruction;i++)
    {
    delay_ms(19);
    convertiV2=PINA.3;
    convertT1=convertiV1-convertiV2;
    if(convertT1>=0) //Pente montante?
    PORTB.1=1;
    else
    {
    PORTB.2=1; //led rouge et alerte allumé
    PORTB.1=0;
    PORTB.4=1;
    }
    convertT1 = convertiV2;
    }


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


    convertiV1=PINA.3;
    NbreInstruction = 15;//Apparament
    for(i=0;i<NbreInstruction;i++)
    {
    delay_ms(19);
    convertiV2=PINA.3;
    convertT1=convertiV1-convertiV2;
    if(convertT1<=0)
    PORTB.1=1;
    else
    {
    PORTB.2=1;
    PORTB.1=0;
    PORTB.4=1;
    }
    convertT1 = convertiV2;
    }
    //-----------------------------------------------------------//

    convertiV1=PINA.3;
    NbreInstruction = 15;//Apparament
    for(i=0;i<NbreInstruction;i++)
    {
    delay_ms(19);
    convertiV2=PINA.3;
    convertT1=convertiV1-convertiV2;
    if(convertT1>=0)
    PORTB.1=1;
    else
    {
    PORTB.2=1;
    PORTB.1=0;
    PORTB.4=1;
    }
    convertT1 = convertiV2;
    }

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

    delay_ms(65); //tempo de 65ms car tension d'appel

    NbreInstruction=5;
    for(i=0;i<NbreInstruction;i++)
    {
    if(PINA.4<12 && PINA.4>9)
    PORTB.1=1;
    else
    {
    PORTB.2=1;
    PORTB.1=0;
    PORTB.4=1;
    }
    delay_ms(20);

    }


    }

    }



    Les nombres ne sont pas encore bien déterminer car je n'y est pas encore attaché d'importance

  22. #52
    jo-electrons

    Re : Programme en C : Problème synthaxe?

    En parlant de chiffre, je me suis apercu que le microcontroleur que je veux utiliser n'est pas muni de convertisseur analogique numérique .
    Il y en existe-t-il? Il me faudrait un micro avec 2 convertisseurs interne si possible.
    J'ai deux signal a traiter en meme temps.

  23. #53
    invitebac23ddd

    Re : Programme en C : Problème synthaxe?

    Bah des CAN seul ca existe heuresement ^^ enfin c'est pas super compliqué a metre en oeuvre (ca depend quand meme de la precision que tu souhaite), par ex une série de ésistance a 1% suffit parfois.

    Pour les microC, je ne les connais pas trop, moi j'ai tjjs utilisé un CAN externe...

  24. #54
    jo-electrons

    Re : Programme en C : Problème synthaxe?

    1% par valeur environ c'est sa? genre j'ai 15V...

  25. #55
    invitebac23ddd

    Re : Programme en C : Problème synthaxe?

    Non pas du tout, je disais que si tu ne veux pas acheter de composant electronique de type CAN, tu peux tjs te débrouiller ac des résistances.
    Mais le mieux reste le composant electronique (plus précis en general et surtout moin cher si tu n'a pas de quoi le faire...)

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. synthaxe requète sql
    Par invite685917ef dans le forum Logiciel - Software - Open Source
    Réponses: 15
    Dernier message: 04/05/2009, 16h27
  2. [Blanc] probleme de programme
    Par invite23853c45 dans le forum Dépannage
    Réponses: 3
    Dernier message: 20/05/2008, 17h17
  3. probleme d'installation de certain programme
    Par invite82369654 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 23/04/2006, 22h52
  4. problème programme
    Par invitea301fcd6 dans le forum Logiciel - Software - Open Source
    Réponses: 20
    Dernier message: 22/07/2005, 17h54
  5. Problème de programme.
    Par invite8d09e4b8 dans le forum Électronique
    Réponses: 3
    Dernier message: 11/07/2005, 15h56
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...