Carte easyPIC v7 avec mikroC - Page 4
Répondre à la discussion
Page 4 sur 5 PremièrePremière 4 DernièreDernière
Affichage des résultats 91 à 120 sur 134

Carte easyPIC v7 avec mikroC



  1. #91
    dje8269

    Re : Carte easyPIC v7 avec mikroC


    ------

    Bon ben, j'a itout refais et ca fonctionne . je n'y comprends plus rien ;

    -----
    Dernière modification par dje8269 ; 15/09/2014 à 19h44.
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  2. #92
    dje8269

    Re : Carte easyPIC v7 avec mikroC

    Oups le code !!

    Code:
    char uart_rd;
    #define BP PORTB.F0     // Nomme RBO en BP
    
    void main() {
      ANSELB  = 0;          // Configure le PORT B en digital
      ANSELC = 0;           // Configure le PORT C en digital
      
      TRISB = 0xff ;        // Met le PORT B en entrée
      TRISC = 0x00 ;        // Met le PORT C en sortie
    
      UART1_Init(9600);               // Initialize UART module at 9600 bps
      Delay_ms(100);                  // Wait for UART module to stabilize
    
      UART1_Write_Text("Hello World !!!");
      UART1_Write(10);
      UART1_Write(13);
    
      while (1) {                     // Endless loop
        if (UART1_Data_Ready()) {     // If data is received,
          uart_rd = UART1_Read();     // read the received data,
          UART1_Write(uart_rd);       // and send data via UART
        }
        
        if ( BP == 1 ){
            UART1_Write_Text("BP appuye");
            UART1_Write(10);
            UART1_Write(13);
        }
        else {
             UART1_Write_Text("BP relache");
             UART1_Write(10);
             UART1_Write(13);
        }
    }
    }
    Par contre je n'ai pas compris l'interet de ces lignes !

    if (UART1_Data_Ready()) { // If data is received,
    uart_rd = UART1_Read(); // read the received data,
    UART1_Write(uart_rd); // and send data via UART
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  3. #93
    dje8269

    Re : Carte easyPIC v7 avec mikroC

    Bon ben la ca fonctionne pas ;

    Lecture de la valeur analogique .
    conversion en string ( comme dans ton exemple)
    puis envoie dans l'UART pour affichage .

    Quand je tourne le potar , les symbols changent a l'écran , mais cela ne correspond a rien , plein de symboles tout bizarre . rien de lisible
    Je dois pas etre loin .

    Code:
    char uart_rd ;
    char txt[7];
    unsigned int valeur ;
    
    void main() {
      ANSELB = 1 ;          // Configure le PORT B en  ANA
      ANSELC = 0;           // Configure le PORT C en digital
      
      TRISB = 0xff ;        // Met le PORT B en entrée
      TRISC = 0x00 ;        // Met le PORT C en sortie
    
      UART1_Init(9600);               // Initialize UART module at 9600 bps
      Delay_ms(100);                  // Wait for UART module to stabilize
    
      UART1_Write_Text("Hello World !!!");
      UART1_Write(10);
      UART1_Write(13);
    
      while (1) {                       // Endless loop
          if (UART1_Data_Ready()) {     // If data is received,
            uart_rd = UART1_Read();     // read the received data,
            UART1_Write(uart_rd);       // and send data via UART
          }
    
          valeur = ADC_Read(12) ;       // Lecture de l'ADC mise dans la variable "valeur"
          
          IntToStr(valeur, txt);        // convertion de l'int en string
    
          UART1_Write_Text(valeur);     // Envoie dans l'UART pour affichage
          UART1_Write(10);
          UART1_Write(13);
    
        }
    }
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  4. #94
    Gérard

    Re : Carte easyPIC v7 avec mikroC

    Faire un essai sans convertir en string.

  5. #95
    invite1f39ae77

    Re : Carte easyPIC v7 avec mikroC

    tu a mis : UART1_Write_Text(valeur); // Envoie dans l'UART pour affichage
    c'est pas plutôt la chaîne de caractère "txt" que tu doit envoyer? donc : UART1_Write_Text(txt); // Envoie dans l'UART pour affichage

  6. #96
    adipie

    Re : Carte easyPIC v7 avec mikroC

    Citation Envoyé par dje8269 Voir le message
    mais le problème c'est que quand je charge un nouveau programme il reste sur l'ancien , c'est bizarre quand même !!! .
    Tu close le programme en cours avant créer un nouveau projet pour éviter ceci.

  7. #97
    adipie

    Re : Carte easyPIC v7 avec mikroC

    Citation Envoyé par dje8269 Voir le message
    Code:
        if (UART1_Data_Ready()) {     // If data is received,
          uart_rd = UART1_Read();     // read the received data,
    Par contre je n'ai pas compris l'interet de ces lignes !
    Ces lignes sont inutiles dans ton cas car tu envoi une chaine vers le PC, mais le PC n'envoi rien en retour.

  8. #98
    adipie

    Re : Carte easyPIC v7 avec mikroC

    Citation Envoyé par dje8269 Voir le message
    Bon ben la ca fonctionne pas ;

    Lecture de la valeur analogique .
    conversion en string ( comme dans ton exemple)
    puis envoie dans l'UART pour affichage .

    Quand je tourne le potar , les symbols changent a l'écran , mais cela ne correspond a rien , plein de symboles tout bizarre . rien de lisible
    Je dois pas etre loin .
    Tu dois envoyer le résultat de la conversion sous forme d'une chaine et non la valeur numérique.
    Dans MikroBasic le compilateur t'aurai craché l'erreur suivante:
    "Incompatible types ("simple type" to "complex type") "
    Un bug dans MikroC ?
    Dernière modification par adipie ; 16/09/2014 à 06h10.

  9. #99
    dje8269

    Re : Carte easyPIC v7 avec mikroC

    Désolé hier soir, j'avais décroché et tout eteins , je viens de faire le changement , ca fonctionne !!

    c'est pas plutôt la chaîne de caractère "txt" que tu doit envoyer?
    Voila l'erreur !

    en affichant "txt" ca fonctionne impeccable .

    Je tourne mon potar et je vois la valeur qui s'inscrit sur hyperterminal ; toujours de 1 à 963 .

    J'avance mais qu'est ce que c'est long .

    Quand je sais ce que je dois faire , et ou je dois arrivé ca me fais peur lol . J'ai acheté l'ecran LCD et le graphique pour al carte easypic, ca me simplifieras la vie, et dans mon projet futur je compte m'en servir alors ......

    Donc ,
    - Gestion des BP ok
    - Des leds ( donc des I/O) ok
    - lecture analogique ok
    - affichage 7 segments ok
    -Les interruptions , moyen ok
    -les timers moyens ok

    Il va me manquer deux gros pavés .

    Le codage manchester ( pour transmettre les infos en RF sur la télécommande)
    et le PWM , pour commander 8 servos moteurs .

    Voici le code qui fonctionne sous realterm

    Code:
    char uart_rd ;
    char txt[7];
    unsigned int valeur ;
    unsigned int valeur2 ;
    
    void main() {
      ANSELB = 1 ;          // Configure le PORT B en  ANA
      ANSELC = 0;           // Configure le PORT C en digital
      
      TRISB = 0xff ;        // Met le PORT B en entrée
      TRISC = 0x00 ;        // Met le PORT C en sortie
    
      UART1_Init(9600);               // Initialize UART module at 9600 bps
      Delay_ms(100);                  // Wait for UART module to stabilize
    
      UART1_Write_Text("Hello World !!!");
      UART1_Write(10);
      UART1_Write(13);
      delay_ms(2000) ;
      
      while (1) {                       // Endless loop
          if (UART1_Data_Ready()) {     // If data is received,
            uart_rd = UART1_Read();     // read the received data,
            UART1_Write(uart_rd);       // and send data via UART
          }
    
          valeur = ADC_Read(12) ;       // Lecture de l'ADC mise dans la variable "valeur"
    
          IntToStr(valeur, txt);        // convertion de l'int en string
    
          UART1_Write_Text(txt);     // Envoie dans l'UART pour affichage
          UART1_Write(10);
          UART1_Write(13);
    
        }
    }
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  10. #100
    adipie

    Re : Carte easyPIC v7 avec mikroC

    Prochain exercice, Convertir Valeur lue en volt et l'afficher.
    Utilise Usart Terminal de MikroC à la place de Realterm
    Tu ne lis pas les 10 bits pour le moment, c'est pour cette raison que tu affiches 963 au lieu de 1023
    Dernière modification par adipie ; 16/09/2014 à 06h57.

  11. #101
    dje8269

    Re : Carte easyPIC v7 avec mikroC

    Prochain exercice, Convertir Valeur lue en volt et l'afficher.
    Ca marche , mais juste avant je préférerais réussir a affiché en 10bits ma valeur .

    Utilise Usart Terminal de MikroC à la place de Realterm
    Des que j'ai réussis a lire en 10bits ; Je convertirais ma valeur lue en volt avec , promis .

    Je comprends pas un truc . quand j'écris :

    valeur = ADC_Read(12) ; // Lecture de l'ADC mise dans la variable "valeur"
    IntToStr(valeur, txt); // convertion de l'int en string
    Je lis l'entrée ANAlogique et je place la valeur lue dans la variable déclarée "valeur" qui est une int ( donc en 16bit , un word quoi ! ) . DOnc valeur devrait avoir la bonne valeur ? CàD 1023 non ?

    Ensuite je fais une conversion de int vers string . d'ailleurs je sais pas pourquoi je suis obligé de convertir ?
    Mais je vois pas ou y'a une limitation a 8bit quelques part ? Si j'étais sur 8 bits , je pourrait voir seulement 255 au max non ?

    Avant d'aller plus loin il faudrait que j'éclaircisse cette zone d'ombre .

    Merci encore pour la patience
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  12. #102
    Gérard

    Re : Carte easyPIC v7 avec mikroC

    Quelle est la valeur en volt sur la patte analogique quand tu affiches 963 ?

  13. #103
    dje8269

    Re : Carte easyPIC v7 avec mikroC

    La valeur est de 4.73V ce qui correspond a l'echelle :
    5/1023= 0.00488
    0.00488*963 = 4.706 V

    On est bon!
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  14. #104
    Gérard

    Re : Carte easyPIC v7 avec mikroC

    Citation Envoyé par dje8269 Voir le message
    La valeur est de 4.73V ce qui correspond a l'echelle :
    5/1023= 0.00488
    0.00488*963 = 4.706 V

    On est bon!
    Tu as donc une tension d'alim de 5,02V

    Branche l'alim en direct sur la patte analogique et regarde le résultat de la conversion.

  15. #105
    dje8269

    Re : Carte easyPIC v7 avec mikroC

    Impeccable !

    1023 affiché sur realterm !! C'est tout bon .
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  16. #106
    Gérard

    Re : Carte easyPIC v7 avec mikroC

    Citation Envoyé par dje8269 Voir le message
    Impeccable !

    1023 affiché sur realterm !! C'est tout bon .
    Je suis trop fooooooort ....


  17. #107
    dje8269

    Re : Carte easyPIC v7 avec mikroC

    Yes !!!

    Bon la , je galere a affiche les virgules pour la conversion en volt .

    j'arrive a affiché les unités de volt , soit 0,1,2,3 et 4 . mais la précision n'est pas top sans les virgules .

    J'ai essayé de définir en float mais ca ne fonctionne pas !!

    Un indice ?
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  18. #108
    dje8269

    Re : Carte easyPIC v7 avec mikroC

    Pas evident de gerer les floats .....

    Les valeurs correspondent jusqu'a depassement de la valeur max . peut on limiter le nombre apres la virgule ?

    j'en suis rendu la :

    Code:
    char uart_rd ;
    char txt[7];
    unsigned int valeur ;
    unsigned int valeur2 ;
    float coef ;
    float volt ;
    
    void main() {
      ANSELB = 1 ;          // Configure le PORT B en  ANA
      ANSELC = 0;           // Configure le PORT C en digital
      
      TRISB = 0xff ;        // Met le PORT B en entrée
      TRISC = 0x00 ;        // Met le PORT C en sortie
    
      UART1_Init(9600);               // Initialize UART module at 9600 bps
      Delay_ms(100);                  // Wait for UART module to stabilize
    
       coef = 2.00488 ;               // coef+2 pour rentrer dnas les valeurs imposées du float
    
      UART1_Write_Text("Hello World !!!");
      UART1_Write(10);
      UART1_Write(13);
      delay_ms(2000) ;
      
      while (1) {                       // Endless loop
          if (UART1_Data_Ready()) {     // If data is received,
            uart_rd = UART1_Read();     // read the received data,
            UART1_Write(uart_rd);       // and send data via UART
          }
    
          valeur = ADC_Read(12) ;       // Lecture de l'ADC mise dans la variable "valeur"
          valeur2 = valeur*2  ;          // Calcul du correction de l'erreur avec le +2
          volt = valeur*coef-valeur2 ;
    
          floatToStr(volt, txt);        // convertion de l'int en string
    
          UART1_Write_Text(txt);     // Envoie dans l'UART pour affichage
          UART1_Write(10);
          UART1_Write(13);
    
        }
    }
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  19. #109
    dje8269

    Re : Carte easyPIC v7 avec mikroC

    Comment faire afficher 0.0008 en sachant qu'une valeur float est égale au minimum à
    ± 1.17549435082E-38 à ±6.80564774407E38 ???
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  20. #110
    Gérard

    Re : Carte easyPIC v7 avec mikroC

    Impossible d'aider suite allergie au C ...

  21. #111
    dje8269

    Re : Carte easyPIC v7 avec mikroC

    lol . pas de soucis ; je comprends . j'ai attrapé la maladie de la programmation j'adore ca , mais en C je me heurte a chaque fois à un probléme biscornus !!!

    Je n'arrive pas un trouvé un exemple que je pourrais utilisé .
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  22. #112
    RISC

    Re : Carte easyPIC v7 avec mikroC

    Salut,
    Citation Envoyé par dje8269 Voir le message
    Comment faire afficher 0.0008 en sachant qu'une valeur float est égale au minimum à
    ± 1.17549435082E-38 à ±6.80564774407E38 ???
    Pour faire cela il faut utiliser la fonction printf en prenant soin d'inserer :
    #include <stdio.h> au début de ton fichier

    Pour la syntaxe (compliquée) de printf, lis les tutoriels en C sur internet ;=)

    a+

  23. #113
    dje8269

    Re : Carte easyPIC v7 avec mikroC

    Merci RISC ,je vais fouiller dans cette direction alors ! Tout est compliqué en C . je commence aussi à me lasser de galerer comme ca ! .
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  24. #114
    adipie

    Re : Carte easyPIC v7 avec mikroC

    Ce n'est pas le C qui est compliqué, mais toi !
    Tu as une aide précieuse dans ton logiciel MicroC et dans Internet, il faut la consulter.
    Regarde dans la librairie "Sprint Library" de MikroC, tout est expliqué
    Teste le code suivant que je n'ai pas réussi à tester avec la version de demo:
    Code:
    void main(){
    
      UART1_Init(4800);                         // Initialize UART module at 4800 bps
      Delay_ms(10);
    
      UART1_Write_Text("Floating point number representation"); // Write message on UART
    
      sprintf(buffer, "%12e", ww);             // Format ww and store it to buffer
      UART1_Write_Text("rne format:");       // Write message on UART
      UART1_Write_Text(buffer);                // Write buffer on UART
    
      sprintf(buffer, "%12f", ww);             // Format ww and store it to buffer
      UART1_Write_Text("rnf format:");       // Write message on UART
      UART1_Write_Text(buffer);                // Write buffer on UART
    
      sprintf(buffer, "%12g", ww);             // Format ww and store it to buffer
      UART1_Write_Text("rng format:");       // Write message on UART
      UART1_Write_Text(buffer);                // Write buffer on UART
    }

  25. #115
    invite5c0d525e

    Re : Carte easyPIC v7 avec mikroC

    Citation Envoyé par dje8269 Voir le message
    Tout est compliqué en C . je commence aussi à me lasser de galerer comme ca ! .
    Un bon langage est un langage avec lequel tu te sens à l'aise, Si le C ne te convient pas essaye Mikrobasic, c'est un langage un peu plus intuitif. Le revers de la médaille c'est que c'est moins utilisé et par conséquent plus difficile de trouver de l'aide extérieure. Ca ne veux pas dire non plus que tu aurais échappé aux obstacles que tu rencontres aujourd'hui.

  26. #116
    dje8269

    Re : Carte easyPIC v7 avec mikroC

    Bonjour à tous ,

    C'est exact gabuzo , j'ai choisi le C après une longue hésitation , je dois bien , l'avoué . Mais ce qui m'as séduit c'est effectivement une communauté assez large .

    J'ai tésté ton code adipie , qui est en fait celui de l'exemple du manuel . il manquait juste les déclarations des variables "ww" et "buffer" .

    effectivement je vois le chiffre mis en forme de differente facon . Mais apres plusieurs modifs , je n'arrive pas a affiché seulement 2 chiffres apres la virgule .

    Je lis les exemples , je regarde internet , mais mon vocabulaire anglais n'est pas trés fournis, surtout en anglais technique . donc deja j'ai du mal a comprendre l'anglais , plus les complications du langage C , font qui j'y arrive pas. Crois moi j'y mets du mien pourtant . Les traducteurs en langage technique sont nul :
    Par exemple string , sans pensée cochonne hein ! , bande de pervers , il me le traduit en ficelle, mais en C ??!!!?? .

    J'ai regardé les tableaux , les exemples etc ..... mais j'ai rient trouvé pour diminuer le nombre de chiffres apres la virgule ! ou alors j'ai pas compris certes .
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  27. #117
    adipie

    Re : Carte easyPIC v7 avec mikroC

    Si les fonctions de formatage du C te font souffrir tu peux assurer le formatage toi même suivant l'exemple ci-dessous qu'il suffit de traduire de MikroBasic en MikroC
    Code:
    program MyProject
    'Formatage d'un nombre à deux chiffres après la virgule
     dim v1 as float
     v2, vd, vm as longword
     vdstr, vmstr, sf as string[10]
    main:
     UART1_Init(9600)                       'Init UART
     v1 = 12345.5897                        'Valeur initiale
     Sf = ""
     while true
     vd = longword (floor(v1))              'Extraction de la parie entière
     longwordtostr(vd, vdstr)
     ltrim(vdstr)                           'Suppres. espaces avant
     
      vm = longint(v1 * 100 ) mod 100       'Extraction après la virgule
      longwordtostr(vm, vmstr)
      ltrim(vmstr)                          'Suppres. espaces avant
    
       strcat(sf,vdstr)                     'Création de la chaine à afficher
       strcat(Sf,".")
       strcat(sf,vmstr)
       
        UART1_Write_Text(sf)
         sf = ""
     delay_ms(2000)
     wend
     end.

  28. #118
    dje8269

    Re : Carte easyPIC v7 avec mikroC

    Bon je baisse les bras sur les chiffres à virgule !!!
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  29. #119
    adipie

    Re : Carte easyPIC v7 avec mikroC

    Dommage de jeter l'éponge si vite.
    Tu prends ton chiffre 1234.56789 et tu extrais la partie entière par [Floor(1234.56789) = 1234]
    Pour extraire 2 caractères après la virgule, tu multiplies ton chiffre par 100 et avec l'opérateur Modulo 100 tu extrais ces deux chiffres [123456 mod 100 = 56]
    Maintenant tu assemble la partie entière + le point décimal + les deux derniers chiffres dans une chaîne que tu peux envoyer par l'Uart ou afficher sur le LCD [1234.56]
    Tu peux alors enfermer cette manipulation dans une fonction que tu pourras appeler chaque fois que tu devras formater un nouveau nombre.
    J'avais téléchargé la version de démo MikroC pour écrire cette fonction et la tester, mais cette version est limitée à pas grand chose.

  30. #120
    adipie

    Re : Carte easyPIC v7 avec mikroC

    Peux tu compiler et tester ce bout de code.
    Code:
    //Formatage d'un nombre
    double v1;
    char vdstr;
    char vmstr;
    char  sf;
    long  v2;
    long vd ;
    long vm ;
    void main(){
      UART1_Init(9600);                //'Init UART
     v1 = 12345.5897;                  //'Valeur initiale
     Sf = "";
     while (1) {
     v2 = (floor(v1*100));
     vd = v2 / 100;                   //'Extraction de la parie entière
     longwordtostr(vd, vdstr);
     ltrim(vdstr);                   //'Suppres. espaces avant
      vm = v2 % 100;                 //'Extraction avec 2 après la virgule
      longwordtostr(vm, vmstr);
      ltrim(vmstr);                 //'Suppres. espaces avant
       strcat(sf,vdstr);            //'Création de la chaine à afficher
       strcat(Sf,".");
       strcat(sf,vmstr);
        UART1_Write_Text(sf);
         sf = "";
     delay_ms(2000);
     }
    }

Page 4 sur 5 PremièrePremière 4 DernièreDernière

Discussions similaires

  1. Easypic 7, mikroC et 16F84
    Par invite3c35398d dans le forum Électronique
    Réponses: 12
    Dernier message: 30/01/2013, 23h53
  2. commander un téléphone via le port USB de la carte easypic 7
    Par invitebd188048 dans le forum Électronique
    Réponses: 1
    Dernier message: 24/05/2012, 09h48
  3. Donne carte EasyPIC v5 contre rien en échange
    Par BastienBastien dans le forum Électronique
    Réponses: 5
    Dernier message: 03/01/2012, 16h01
  4. easypic, pic, C, et mikroC
    Par invite4c1ed2fa dans le forum Électronique
    Réponses: 11
    Dernier message: 09/03/2011, 10h33
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...