[Programmation] UART Pic 16f628A
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

UART Pic 16f628A



  1. #1
    Herissan

    UART Pic 16f628A


    ------

    Salut à tous je voudrais utiliser l'UART sur mes 2 pic 16f628A pour les faire communiquer entre eux avec des texte par exemple mais quand je passe à la pratique sur ma platine d'essaie le code du receveur n'a pas l'air de très bien pourtant j'ai vérifier il y a de la tension entre les deux bornes vcc et vss et tx et rx de chaque µc, Le code de l'émétteur marche bien (la led clignote) mais celui du recepteur n'a pas l'aire de fonctionner et j'ai aussi bien pensé à relié les broches vss des deux ùc
    Mon code:
    éméteur:
    Code:
    void main() {
       TRISA = 0b1111110;
       TRISB = 0b1111011;
        UART1_Init(9600);
        while(1){
        RA0_bit = 1;
        UART1_Write_Text("h");
        Delay_ms(1000);
        RA0_bit = 0;
        Delay_ms(100);
     
        }
    }
    récepteur:
    Code:
    signed char s;
    void main() {
     TRISA = 0b1111110;
    TRISB = 0b1111011;
        UART1_Init(9600);
        while(1){
        if(UART1_Data_Ready())
                s = UART1_Read();
        if(s == 'h'){
            RA0_bit = 1;
            Delay_ms(1000);
            RA0_bit = 0;
        } else {
         RA0_bit = 0;
        }
        s = '\0';
         Delay_ms(100);
        }
    }
    Je code sous mickro C pro avec un programmateur K150 qui marche très bien.

    -----

  2. #2
    paulfjujo

    Re : UART Pic 16f628A

    bonjour



    essaie avec UART1_Write('h');
    envoi du caractere h
    car avec UART1_Write_Text("h");
    tu envoies un string, donc h , suivi de zero ...

  3. #3
    Herissan

    Re : UART Pic 16f628A

    J'ai essayer sa ne marche toujours pas :'(

  4. #4
    paulfjujo

    Re : UART Pic 16f628A

    bonsoir,

    diviser pour mieux régner

    essai de verifier chacun des PIC

    PIC emetteur -> en face Ecran terminal PC avec cordon USB/TTL

    PIC Recepteur <--- cordon TTL/USB PC terminal clavier

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

    Re : UART Pic 16f628A

    Comment je fais pour le terminale ?

  7. #6
    paulfjujo

    Re : UART Pic 16f628A

    il te faut un cordon TTL/USB prolific ou autre marque
    pour relier le TX UART du PIC sur la pin RX du cordon
    un programme Terminal
    Hyperterminal window, Terraterm terminal, VBRAY terminal , Realterm terminal .. etc .........
    pour voir sur l'ecran ce qu'envoi le 16F...

    et dans l'autre sens , utiliser la pin TX du cordon
    relié au RX UART de l'autre PIC16F
    afin de verifier si il reagit aux envois de ta commande via le clavier touche 'h'


    coté recepteur, tu peux modifier le programme pour avoir l'echo de ce que tu envoies
    moyennant le rajout de la connection TX (PIC recpeteur) vers Pin RX du cable
    Code:
     while(1){
        if(UART1_Data_Ready())
                s = UART1_Read();
                 UART1_Write(s);
         .. etc ...

    des details pour connecter un PIC UART

  8. #7
    Herissan

    Re : UART Pic 16f628A

    D'accord je vais essayer dès que je vais reçevoir le cable USB/TLL

  9. #8
    Herissan

    Re : UART Pic 16f628A

    Bo bein après avoir reçu le cable je l'ai tester sur les deux pic avec le code de l'emetteur et aucun ne marche...

  10. #9
    invite03481543

    Re : UART Pic 16f628A

    Bonjour,

    ce n'est pas parceque les leds clignotent que l'émetteur émet.
    Quel est votre schéma?
    La première chose à vérifier est la configuration de l'UART et la déclaration des I/O.

  11. #10
    invite03481543

    Re : UART Pic 16f628A

    Pourquoi avoir déclaré:
    Code:
    signed char s;

  12. #11
    invite03481543

    Re : UART Pic 16f628A

    La table ASCII allant de 0 à 0xFF mettez unsigned char ou simplement char (vu que vous utilisez MikroC visiblement et que le type char sur ce compilateur est par défaut non signé).

  13. #12
    Herissan

    Re : UART Pic 16f628A

    Merci de tes conseille je vais les appliquer je n'ai pas de shéma en particulier c'est juste deux pic en rx/tx avec une alim

  14. #13
    Herissan

    Re : UART Pic 16f628A

    Alors re je refais le topic car depuis j'ai un peu avancer déjà j'arrive a utiliser l'uart sur une interface sa fonctionne .ensuite j'ai essayer avec une interface bluetooth se qui marchait aussi.
    Maintenant j'ai un nouveau probleme.
    C'est que j'ai fais un nouveau code de manière a ce que quand j'envoie un signal et que le pic le reçois il alume une LED

    Mon problème est que quand j'envoie me signal une première fois sa marche sa alume la LED et quand je le renvoie une deuxime fois il ne l'amlume plus alors qu'elle devrai s'allumer je vais bientot mettre mon code
    Dernière modification par Herissan ; 04/05/2019 à 16h12.

  15. #14
    Herissan

    Re : UART Pic 16f628A

    Code:
    char i[8];
    int mode;
     void main()
     {
      TRISA = 0b01111110;
      TRISB = 0b01011010;
    
      UART1_Init(19200); // Initialize USART module
      PWM1_Init(5000);
      
        // (8 bit, 19200 baud rate, no parity bit...)
       delay_ms(2000);
       UART1_Write_Text("On");
       UART1_Write(13);
       UART1_Write(10);
       RA0_bit = 0;
       PWM1_Start();
       while (1)
       {
          RA0_bit = 0;
    
         if (UART1_Data_Ready())
         { // If data has been received
          UART1_Read_Text(i, "END", 8);     // read it
          UART1_Write_Text(i);       // and send it back
         }
         if(strcmp(i, "UP")== 0){
    
                RB5_bit = 1;
                RB0_bit = 1;
                Delay_ms(1000);
                RB5_bit = 0;
                RB0_bit = 0;
    
         }
         else if(strcmp(i, "LEFT") == 0){
    
         
         
         }
         else if(strcmp(i, "RIGHT") == 0){
         
    
               
         }
         else if(strcmp(i, "DOWN") == 0){
    
    
    
                RB5_bit = 1;
                RB0_bit = 1;
                Delay_ms(1000);
                RB5_bit = 0;
                RB0_bit = 0;
         
         }
         else if(strcmp(i, "LEDON") == 0){
           // ???
         }
    
        }
    
     }
    Dernière modification par Vincent PETIT ; 05/05/2019 à 10h06. Motif: Ajout des balises [CODE]...[\CODE]

Discussions similaires

  1. [Programmation] UART et UART FIFO
    Par invite57b37f86 dans le forum Électronique
    Réponses: 1
    Dernier message: 10/05/2016, 14h58
  2. ADC evec PIC 16F628A??
    Par invited68d55ec dans le forum Électronique
    Réponses: 5
    Dernier message: 11/02/2015, 12h35
  3. Programme sur PIC 16f628a
    Par anthonydu62 dans le forum Électronique
    Réponses: 12
    Dernier message: 25/02/2013, 14h21
  4. programme PIC 16F628A
    Par invite980b6e62 dans le forum Électronique
    Réponses: 82
    Dernier message: 31/01/2013, 12h00
  5. pic 16f628A et entrées
    Par invite07bc4d05 dans le forum Électronique
    Réponses: 11
    Dernier message: 11/03/2007, 20h15
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...