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

Aide sur la commande getc



  1. #1
    b|zhon

    Aide sur la commande getc


    ------

    Slt à tous ,

    j'ai un ptit soucis pour lire sur ma liaison serie de mon pic (L'UART).

    En fait j'utilise une carte emetteur qui envoie l'intermédiaire d'un TDL2a un octet , 0x21.
    Ma carte recepteur receptionne bien le 0x21 sur le rx de ma liaison serie.
    Cependant quand je fais
    char recept_m;
    Code:
    void_main()
    {
    while(1)
    {
    recept_m=getc();
    do
    {}
    while(recept_m!=0x21);
    output_high(PIN_B1);
    delay_ms(1000);
    output_low(PIN_B1);
    delay_ms(1000);
    }
    }
    }
    J'ai abregé le programme mais j'ai laissé la partie la plus interessante

    Merci d'avance jsuis perdu

    -----

  2. Publicité
  3. #2
    Jack
    Modérateur

    Re : Aide sur la commande getc

    Quel est le problème finalement? Il y a une question?

    A+

  4. #3
    b|zhon

    Re : Aide sur la commande getc

    Dsl du retard ,

    Oui en gros je comprends pas pourquoi le pic n'arrive pas a lire la donnée sur la liaison Rx

  5. #4
    Seb.26

    Re : Aide sur la commande getc

    C'est normal que le getc soit en dehors du do {} ?

    Essaye avec ça :
    Code:
    while( (recept_m=getc())!=0x21 );
    NB: si le warning te gène (ou que tu trouve ça pas sur beau), écris :
    Code:
    do
    {
      recept_m=getc()
    }
    while( recept_m!=0x21 );
    Et si t'as pas besoin de stocker le byte, tu peux simplifier en :

    Code:
    while( getc() != 0x21 );
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  6. A voir en vidéo sur Futura
  7. #5
    b|zhon

    Re : Aide sur la commande getc

    Merci beaucoup Seb , je vais essayer ça mardi , quand je serai en cours ! je vous tiens au courant

  8. #6
    b|zhon

    Re : Aide sur la commande getc

    Code:
    void main()
    {
       output_high(PIN_B3);//désactivation du setup
       output_high(PIN_B2);//désactivation de Enable
       output_high(PIN_C6);
       delay_ms(100);
       setup_adc_ports(NO_ANALOGS);
       setup_adc(ADC_OFF);
       setup_spi(FALSE);
       setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
       setup_timer_1(T1_DISABLED);
       setup_timer_2(T2_DISABLED,0,1);
    
       config_tdl2a();
    
    
    while(1)
    
     {
    
       do
       {
       }
       while( (recept_m=getc())!=0x21 );
       output_high(PIN_B1);
       delay_ms(1000);
       output_low(PIN_B1);
       delay_ms(1000);
    
     }
    
    }
    ma led ne s'allume pas des que j'envoie 0x21 . J'ai verifié le rx et j'ai bien le 0x21 (envoyé en continu)
    Dernière modification par b|zhon ; 20/05/2008 à 13h08.

  9. Publicité
  10. #7
    Seb.26

    Re : Aide sur la commande getc

    Avec la balise CODE, c'est mieux ...

    D'ailleurs, tu veux quoi ?
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  11. #8
    b|zhon

    Re : Aide sur la commande getc

    Enfait , ce que je voudrais , c'est que ma led reagisse dès que j'envoie 0x21 (a partir de ma carte emission).
    Ce qui signifie que le getc , ne fonctionne pas pr le moment, puisque je reçois bien l'information

  12. #9
    b|zhon

    Re : Aide sur la commande getc

    Je precise que je n'utilise pas la liaison seriedu pc ni de max 232.Voici mon header :

    Code:
    #include <16F876.h>
    #device adc=8
    
    #FUSES NOWDT                 	//No Watch Dog Timer
    #FUSES HS                    	//High speed Osc (> 4mhz)
    #FUSES NOPUT                 	//No Power Up Timer
    #FUSES NOPROTECT             	//Code not protected from reading
    #FUSES BROWNOUT              	//Reset when brownout detected
    #FUSES NOLVP                 	//No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
    #FUSES NOCPD                 	//No EE protection
    #FUSES NOWRT                 	//Program memory not write protected
    #FUSES NODEBUG               	//No Debug mode for ICD
    
    #use delay(clock=20000000)
    #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

  13. #10
    Seb.26

    Re : Aide sur la commande getc

    Citation Envoyé par b|zhon Voir le message
    Je precise que je n'utilise pas la liaison seriedu pc ni de max 232.
    ... comment ça, il vient d'où alors ton octet ? ... d'un autre PIC en UART TTL ?
    ( avec un oscillo, tu vois bien ton 0x21 arriver sur le Rx du PIC ? )

    PS: tu es sûr de ton utilisation de getc() ? ...
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  14. #11
    Seb.26

    Re : Aide sur la commande getc

    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

Discussions similaires

  1. Moteur DC : commande en PWM ou commande linéaire?
    Par maoussecostaud dans le forum Électronique
    Réponses: 8
    Dernier message: 03/03/2009, 11h01
  2. aide urgente pour commande par retour d'etat !!
    Par Tulkas dans le forum Électronique
    Réponses: 1
    Dernier message: 16/04/2008, 07h03
  3. Aide carte de commande de puissance
    Par snyfir dans le forum Électronique
    Réponses: 11
    Dernier message: 25/11/2007, 19h53
  4. Resine sur carte de commande
    Par cabernatus dans le forum Électronique
    Réponses: 3
    Dernier message: 24/05/2007, 16h02
  5. Convertir une commande tension en commande courant
    Par guyonv dans le forum Électronique
    Réponses: 11
    Dernier message: 29/03/2007, 07h45
Découvrez nos comparatifs produits sur l'informatique et les technologies.