Rs232 sur ccs c
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

Rs232 sur ccs c



  1. #1
    invite4b36df62

    Exclamation Rs232 sur ccs c


    ------

    Bonsoir tous le monde,
    s'il vous plait j'ai vraiment besoin de votre aide.je veux faire un programme sur CCS C pour permettre la communication entre le PC et mon PIC via RS232 . quand je compile mon programme tout va bien mais quand je veux le simuler sur ISIS il n'est pas fonctionnel.
    voilà mon programme:
    #include<16F877.h>
    #fuses HS,XT,NOWDT,NOPROTECT
    #use delay(clock=4000000)
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>
    #include <stdio.h>
    #use RS232 (baud=19200, Xmit=PIN_C6, Rcv=PIN_C7) //includes the rs232 libraries
    #INT_GLOBAL
    char C ;
    //#INT_RDA
    //void serial_interrupt ( )
    //{

    //}
    main(){
    int duty=200;
    delay_ms(1000);

    while (kbhit()) // vérification de réception sur port série
    C=getc();

    enable_interrupts(GLOBAL); //activation de sinterruption
    enable_interrupts(INT_RDA); //interrupt fires when the receive data is available, RS232 ON


    if (c='1'){
    output_high(PIN_B1); //rotation dans le 1er sens
    if (c='0')
    output_low(PIN_B1); //rotation dans le 2ème sens
    else
    Set_pwm1_DUTY(0); //arrêt donc maintenir la positionn actuelle
    }
    setup_timer_2(T2_DIV_BY_1,255, 1); //génération du PWM
    setup_ccp1(CCP_PWM);
    set_pwm1_duty(duty);


    }


    sil vous plait aidez moi c'est très urgent et merci bien

    -----

  2. #2
    Jack
    Modérateur

    Re : Rs232 sur ccs c

    C'est un copier/coller de ton source? J'ai des doutes quand je vois ceci:

    Code:
    if (c='1'){
    D'une part, c'est C ta variable et pas c
    et d'autre part, je te rappelle que l'opérateur de comparaison en langage C n'est pas =, mais ==

    De plus:
    Code:
    while (kbhit()) // vérification de réception sur port série
         C=getc();
    En principe, on voit plutôt:
    Code:
    while (!kbhit()) // vérification de réception sur port série
    C=getc();

  3. #3
    invite4b36df62

    Re : Rs232 sur ccs c

    Merci pour votre réponce.
    j'ai changé l'opérateur de comparaison mais pour 'c' et 'C' j'ai vérfié et ça revient au même mais pour plus de sécurité je l'ai changé. Je n'ai pas de problème pour la compilation mais sur ISIS mon terminal virtuel ne me permet pas d'écrire donc je ne peux rien envoyer à mon pic

  4. #4
    carcan

    Re : Rs232 sur ccs c

    Hello !

    je viens de modifier ton code, je n'ai pas remis le contrôle du PWM car je n'ai pas trop compris ce que tu voulais en faire ...
    Attention aussi à la déclaration des "fuses", tu es soit en HS, soit en XT, mais pas les deux. Pour la réception d'un caractère via liaison série, le plus simple est d'utiliser l'interruption adéquate.

    Voici le programme (non testé car je n'ai pas le compilateur sur ce pc) :

    #include<16F877.h>
    #fuses HS,NOWDT,NOPROTECT
    #use delay(clock=4000000)
    #include <stdlib.h>
    #include <stdio.h>
    #use RS232 (baud=19200, Xmit=PIN_C6, Rcv=PIN_C7) //includes the rs232 libraries

    #INT_RDA
    void RDA_isr ()
    {
    BYTE C;

    C = getchar();

    if (C=='1') output_high(PIN_B1); //rotation dans le 1er sens
    if (C=='0') output_low(PIN_B1); //rotation dans le 2ème sens

    //code à ajouter si nécessaire, si bcp de fonctions à faire
    //utiliser la fonction "switch(C)" plutot que bcp de "if"
    }

    main()
    {
    int duty=200;

    enable_interrupts(GLOBAL); //activation de sinterruption
    enable_interrupts(INT_RDA); //interrupt fires when the receive data is available, RS232 ON

    setup_timer_2(T2_DIV_BY_1,255, 1); //génération du PWM
    setup_ccp1(CCP_PWM);
    set_pwm1_duty(duty);

    while (TRUE)
    {
    // code à ajouter si nécessaire
    }
    }

    Tiens nous au courant de l'évolution.
    A+
    Laurent

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

    Exclamation Re : Rs232 sur ccs c

    Bonjour Laurent,
    Merci pour votre réponce. Pour la compilation tout va bien mais toujours avec la simulation sur isis. mon but c'est de changer le sens de rotation d'un moteur CC. En voyant le schéma sur isis vous allez mieux comprendre. Et puisque je suis mécanicienne et ISIS et PICC sont nouveaux pour moi maintenant j'ai de doutes sur mon schéma de simulation .
    merci bien de virifier avec moi .
    Images attachées Images attachées  

  7. #6
    carcan

    Re : Rs232 sur ccs c

    Re !

    en fait je ne connais pas Isis, mais ce que je peux dire sur ton schéma :
    - les niveaux RS232 ne sont pas compatibles avec le PIC, tu dois passer par un convertisseur comme le MAX232.
    - tu peux éliminer ton inverseur (le U3A) et faire la commande inverse à partir d'une autre ligne de sortie de ton PIC. Cela simplifiera ton circuit imprimé.
    - pour éviter la casse si le moteur est bloqué, tu peux mesurer le courant en reliant la pin 15 du L298 à une entrée analogique du PIC ; en ajoutant dans le soft une routine qui lit la valeur de l'entrée analogique et si ça dépasse un certain seuil tu remets la valeur du pwm à 0 (mais ç'est du fignolage, fais le uniquement si tu en as besoin et quand la base fonctionnera).

    A+
    Laurent

  8. #7
    invite4b36df62

    Re : Rs232 sur ccs c

    Merci encore, mais même quand j'ajoute le max232 rien ne change je ne sais plus quoi faire!!
    merci

  9. #8
    carcan

    Re : Rs232 sur ccs c

    Re !

    je te conseille d'attendre qqn qui s'y connait en simulation, je ne peux pas trop t'aider ... mais quand tu seras à la phase réalisation ou proto, n'hésite pas à m'appeler !

    A+
    Laurent

  10. #9
    invite4b36df62

    Re : Rs232 sur ccs c

    variment merci de tout mon coeur. Dès que je trouve la solution je vous met au courant c'est promis.
    merci

  11. #10
    invite4b36df62

    Exclamation Re : Rs232 sur ccs c

    salut à tous,
    j'ai essayé ton programme Laurent directement sur ma carte. Mais le pic reçoit la 1ère interruption et réponds au caractère que j'ai envoyé mais si j'essaye d'envoyer un 2ème caractères ça ne fonctionne plus . de plus le pwm ne fonctionne pas.
    sil vous plait s'il ya une idée tout est floue devant moi

  12. #11
    invite72f64164

    Re : Rs232 sur ccs c

    Bonsoir à tous,

    il y a des centaines de bouts de codes sur ce sujet sur le forum de CCS

    http://www.ccsinfo.com/forum/index.php

  13. #12
    invite4b36df62

    Question Re : Rs232 sur ccs c

    Bonsoir à tous,
    je crois que le samedi c'était mon PIC qui ne veut pas travailler car avec le meme code j'allume et j'éteind une diode led aujourd'hui . Mais le problème et avec mon moteur.si j'appuis sur 0 il tourne quelque tours et s'arrête je dois appuiyer encore une fois pour qu'il continu. Mais si j'appuis sur 1 mon moteur s'arr^te et ne tourne plus. les inputs du L298 sont eux même de la led qui est en fonctionnement normale pas comme mon moteur . et à la fin de l'essai j'ai insister en appuiyant sur 1 il s'est produit un PIC de courant, le courant a passé de 0.5A à 3A ce que mon circuit ne peut pas supporter et le moteur et coinsé dans les deux cas (0 ou 1).
    S'il vous plait si vous avez la moindre idée aidez moi et merci

  14. #13
    invite4b36df62

    Exclamation Re : Rs232 sur ccs c

    bonsoir à tous,
    s'il vous pait si je veux envoyer une chaine de 3 caractères au lieu d'un seul est ce que vous avez une idée comment y faire face
    s'il vous plait j'ai vraiment besoin de votre aides

Discussions similaires

  1. tuto RS232 sur flowcode
    Par invite04c4fc21 dans le forum Électronique
    Réponses: 2
    Dernier message: 23/02/2011, 11h31
  2. programation d'un pic16f877 sur ccs c
    Par invitebf5a572c dans le forum À la conquête de Mars
    Réponses: 2
    Dernier message: 20/11/2008, 18h00
  3. erreur sur ccs compiler
    Par invite8a7e1f83 dans le forum Électronique
    Réponses: 4
    Dernier message: 01/05/2008, 19h59
  4. Port serie sur 16F877 avec CCS
    Par invitefbe9ec51 dans le forum Électronique
    Réponses: 7
    Dernier message: 12/07/2006, 18h56
  5. communiquer sur RS232
    Par invite3769d93a dans le forum Matériel - Hardware
    Réponses: 3
    Dernier message: 10/03/2005, 23h23
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...