un for qui n'en finit pas
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

un for qui n'en finit pas



  1. #1
    Jehudiel

    un for qui n'en finit pas


    ------

    Bonjour à tous,

    Voici mon problème, bizarroïde..

    J'exécute une boucle for (voir programme), et le problème, c'est que j'ai l'impression que mon microcontrôleur arrive pas à en sortir, pourtant ce n'est qu'un p'tit for...

    Code:
    void main (void)
    {
    	Config_interrupt_0();
    	readcan=0;
     	Efface_lcd();
     	Init_lcd();
    	aff_page (start11,start12,start13,start14);
    		while(1)
    		 {
    			for(i=0;i=50;i++)
    			 {
    			 a=1;
    			 Tempo_us(readcan+25); 
    			 a=0;
    			 Tempo_ms(15);
    			 }
    		a=0;
    		Tempo_ms(500);
                    }
    }
    Il effectue bien les impulsions, mais à aucun moment je vois mes 500 ms de repos.... Voyez-vous une erreur?

    Merci

    -----
    Parle peu, mais souvent pour dire des conneries!

  2. #2
    invitefae3ce14

    Re : un for qui n'en fini pas

    Je vois pas la déclaration de ta variable i .

    Elle est pas modifiée ailleurs des fois?

  3. #3
    Jehudiel

    Re : un for qui n'en fini pas

    Bien vu, elle était utilisé ailleurs...

    Mais le problème ne change pas..

    Je l'ai remplacé par y, et i était déclaré, tout comme y maintenant:

    Code:
    int readcan, y;
    Parle peu, mais souvent pour dire des conneries!

  4. #4
    Jack52

    Re : un for qui n'en fini pas

    Je comprend pas pourquoi tu fait "Tempo_us(readcan+25);" si readcan est toujours à 0 !

  5. A voir en vidéo sur Futura
  6. #5
    Jehudiel

    Re : un for qui n'en fini pas

    Readcan est le résultat d'une conversion analogique numérique. C'est pour une commande servomoteur.

    Qu'il y soit ou non ne change en rien mon problème, malheureusement..
    Parle peu, mais souvent pour dire des conneries!

  7. #6
    Jack52

    Re : un for qui n'en fini pas

    Oui mais ton for étant si "simple", tes déclarations de variable refaite ! Ton programme arrive t-il jusqu'au For ??

  8. #7
    invitefae3ce14

    Re : un for qui n'en fini pas

    T'as bien changé dans le for? T'as bien remplacé i par y ?

    Ca peut paraitre con, mais à force de se prendre la tête des fois on oubli des choses simples

  9. #8
    Jehudiel

    Re : un for qui n'en fini pas

    Ouaip, tout est changer, modifier etc.. La déclaration refaite, et le for aussi... Et même readcan viré..

    Code:
    		for(y=0;y=50;y++)
    			 {
    			 a=1;
    			 Tempo_us(25); 
    			 a=0;
    			 Tempo_ms(15);
    			 }
    		a=0;
    		Tempo_ms(500);
    Parle peu, mais souvent pour dire des conneries!

  10. #9
    Jehudiel

    Re : un for qui n'en fini pas

    Han....

    Je vous met la solution...

    Code:
    		for(y=0;y<=50;y++)
    			 {
    			 a=1;
    			 Tempo_us(readcan+25); //Donne entre 0.7us et 1.5ms selon readcan (entre 0 et 25)
    			 a=0;
    			 Tempo_ms(15);
    			 }
    		a=0;
    		Tempo_ms(500);
    Voilà le problème... apparemment il supporte pas les "=" mais plutot les "<="...

    Merci quand même
    Parle peu, mais souvent pour dire des conneries!

  11. #10
    invitefae3ce14

    Re : un for qui n'en fini pas

    Heu oui ... effectivement ...

    Je comprend même pas qu'il ai fonctionné avant en fait ... vu que la condition = 50 était pas vérifiée ...

  12. #11
    Jack
    Modérateur

    Re : un for qui n'en finit pas

    Voilà le problème... apparemment il supporte pas les "=" mais plutot les "<="...
    il supporte très bien les "=". En revanche, il te manque encore de l'expérience.
    Je rappelle que tant que la 2ème expression est vraie (en l'occurrence y=50) la boucle est exécutée.

    Or en C une expression ayant pour valeur 0 est considérée comme fausse, vraie sinon.
    Quand tu écris y=50, tu affectes la valeur 50 à y. La valeur est non nulle, donc l'expression est considérée comme vraie => la boucle ne finira jamais.

    CQFD.

    A+

  13. #12
    Jehudiel

    Re : un for qui n'en finit pas

    Merci pour l'information Jack, à vrai dire, je connais le C depuis... 3 mois environ, donc oui, l'expérience me fait défaut.

    Mais maintenant, tout est plus clair
    Parle peu, mais souvent pour dire des conneries!

  14. #13
    stefjm

    Re : un for qui n'en fini pas

    Citation Envoyé par Jehudiel Voir le message
    Voilà le problème... apparemment il supporte pas les "=" mais plutot les "<="...
    Bonjour,
    Ne pas confondre = (affectation) et == (comparaison) en C.
    Un grand classique.
    Cordialement.
    Moi ignare et moi pas comprendre langage avec «hasard», «réalité» et «existe».

Discussions similaires

  1. Centre de symétrie qui n'en est pas un !!!
    Par invitec1b6da07 dans le forum Mathématiques du collège et du lycée
    Réponses: 13
    Dernier message: 22/05/2009, 22h11
  2. [Blanc] LV Fagor : ne finit pas son cycle !
    Par inviteab712090 dans le forum Dépannage
    Réponses: 0
    Dernier message: 15/04/2009, 09h21
  3. Tchernobyl : qui n'en a pas peur?
    Par GillesH38a dans le forum Environnement, développement durable et écologie
    Réponses: 70
    Dernier message: 19/06/2006, 13h56
Découvrez nos comparatifs produits sur l'informatique et les technologies.