Pic 18f97j60 uart
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Pic 18f97j60 uart



  1. #1
    invite6ba1806f

    Pic 18f97j60 uart


    ------

    Bonjour,

    Voila, je suis sur un pic 18F97J60, sur son UART est connecté un recepteur GPS qui lui envoye des trames.

    J'arrive à récupérer la premiere trame comme il faut, mais par la suite, pour mettre a jour quand je le veux, je galere..

    J'avais commencé par :
    Code:
    void reinitUART(void) // fonction de prise en compte de la volonté d'updater
    {
      char c; //Une variable qui contiendra le caractere éventuellement recu
      PIE1bits.RCIE = 0; //On met a 0 l'interruption du RS232
    
      if(PIR1bits.RCIF==1) //Si le flag de réception de trame est levé
      {
        c = RCREG; //On récupère le caractere recu
        PIR1bits.RCIF = 0; //On baisse le flag de réception
      }
    
      for(index = 0; index < 100; index++)
      {
        uartMsg[index]='\0'; //Je vide le tableau de caracteres
      }
    
      index =0; //Je remet les indices a leurs valeurs de départ
      indexMax=100;
    
      PIE1bits.RCIE = 1; //On met a 1 l'interruption du RS232
    }
    Mais cette fonction la ne fonctionne pas, la trame suivante ne contient qu'un seul caractere, tandis que si je fais ca :
    Code:
    void reinitUART(void) // fonction de prise en compte de la volonté d'updater
    {
    Reset();
    }
    La trame suivante est bien la bonne.. mais il faut payer le prix d'un reset total du pic..

    J'oublie certainement de remettre a 0 quelque chose.. Je suis preneur de toutes les idées! Merci

    -----

  2. #2
    kronanberg

    Re : Pic 18f97j60 uart

    Salut !!

    J'arrive pas exactement bien à comprendre le but du programme. Pourquoi tu ne te sers pas tout le temps de l'interruption de l'UART ?

    Sinon j'aurai plutot mis à 0 du flag d'interruption juste avant de le tester et j'aurai utiliser un pouling bloquant avec un while.

    PIE1bits.RCIE = 0; //On met a 0 l'interruption du RS232

    PIR1bits.RCIF = 0; // Reset du flag
    while (PIR1bits.RCIF !=1) // attente de l'arrivé d'une trame
    PIR1bits.RCIF = 0; // Reset du flag

    c = RCREG; //On récupère le caractere recu
    à+

  3. #3
    invite6ba1806f

    Re : Pic 18f97j60 uart

    Hum moui...

    En fait, la partie RS232 n'est qu'une partie de mon projet et rester à attendre des trames continuellement ne serait pas bon.

    Mais étant donné que maintenant, l'écoute des trames ne se ferait qu'à la demande, ca peut marcher..

    Je posterais dans tous les cas, merci

  4. #4
    invite6ba1806f

    Re : Pic 18f97j60 uart

    Il y avait effectivement quelque chose a creuser de ce coté

    Maintenant quand je veux mettre a jour, le pic reste dans la fonction tant que la mise a jour n'a pas été faite. Ce qui m'empeche de le faire réagir a tout autre chose, mais c'est déjà un bon pas.

    Merci pour ce point de vue

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

    Re : Pic 18f97j60 uart

    C'est bon! en théorie ca marche

    Je dis en théorie car je viens de me rendre compte que l'alimentation de la carte que j'ai acheté ( marque OLIMEX ) ne tient pas la charge quand le PIC entre dans la fonction de mise a jour de la trame qu'il recoit par l'UART..

    Dommage, en tous cas merci!!

Discussions similaires

  1. Pic 18F97J60 Ethernet : Avez vous déja travaillé avec ?
    Par lcoulon dans le forum Électronique
    Réponses: 6
    Dernier message: 20/12/2009, 11h41
  2. Programmation PIC 18F97j60(langage C, MPLAB)
    Par invite304155d6 dans le forum Électronique
    Réponses: 13
    Dernier message: 17/07/2009, 08h41
  3. PIC et I2C vs UART
    Par invite220a379c dans le forum Électronique
    Réponses: 3
    Dernier message: 15/07/2009, 11h36
  4. [PB] PIC 16F638 UART et RS232
    Par mmarc2007 dans le forum Électronique
    Réponses: 3
    Dernier message: 09/03/2009, 17h29
  5. Pic/uart
    Par ABN84 dans le forum Électronique
    Réponses: 5
    Dernier message: 06/03/2008, 09h46
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...