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

Rs232 sur ccs c



  1. #1
    faffou

    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. Publicité
  3. #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();

  4. #3
    faffou

    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

  5. #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

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

    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

  8. #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

  9. Publicité
  10. #7
    faffou

    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

  11. #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

  12. #9
    faffou

    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

  13. #10
    faffou

    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

  14. #11
    Nappa

    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

  15. #12
    faffou

    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

  16. Publicité
  17. #13
    faffou

    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 vindalou dans le forum Électronique
    Réponses: 2
    Dernier message: 23/02/2011, 10h31
  2. programation d'un pic16f877 sur ccs c
    Par gazz dans le forum À la conquête de Mars
    Réponses: 2
    Dernier message: 20/11/2008, 17h00
  3. erreur sur ccs compiler
    Par ti7bo7 dans le forum Électronique
    Réponses: 4
    Dernier message: 01/05/2008, 18h59
  4. Port serie sur 16F877 avec CCS
    Par joseph4008 dans le forum Électronique
    Réponses: 7
    Dernier message: 12/07/2006, 17h56
  5. communiquer sur RS232
    Par matika dans le forum Matériel - Hardware
    Réponses: 3
    Dernier message: 10/03/2005, 22h23
Découvrez nos comparatifs produits sur l'informatique et les technologies.