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

Usb + pic18f4550



  1. #1
    invitead51e543

    Red face Usb + pic18f4550


    ------

    Bonjour à tous,
    J'en appelle aux fins connaisseurs en programmation de PIC par USB.Je programme en C et souhaiterait lorsque je tape un caractère, mon PIC réalise une action
    .Je bloque sur la 1ère partie.
    EN effet, je souhaitais utiliser la commande :
    if (usb_cdc_kbhit()=='a')
    {
    faire action;
    }

    Le problème est que lorsque j'exécute mon programme et que je tape le caractère "a", rien ne se passe.
    Des idées?
    Merci bonne journée à tous

    -----

  2. #2
    antoine6

    Re : Usb + pic18f4550

    Salut,

    Tu le tape ou ton caractere "a"?

    T'es sur que ca arrive bien?

    Essaie un truc du genre

    Code:
    char val;
    while(1)
    {
      val = usb_cdc_kbhit();
      printf("Valeur recue : %c\n\r", val);
    }
    Tu saura au moins la valeur reçue

  3. #3
    invitead51e543

    Re : Usb + pic18f4550

    L'instruction usb_cdc_kbhit(); permet de récupérer la valeur tapée sur le clavier...

  4. #4
    antoine6

    Re : Usb + pic18f4550

    SI ton action est pas faite, c'est que la condition est pas remplie.

    Verifie déja que la valeur tapée au clavier est bien envoyée et lue par ton PIC

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

    Re : Usb + pic18f4550

    Ce programme ne fonctionne pas ; il envoie en permanence "Valeur reçue" et lorsque l'on tape un caractère, il plante...

  7. #6
    antoine6

    Re : Usb + pic18f4550

    tu programme sous CCS?

    Sur ce lien : http://www.ccsinfo.com/forum/viewtop...2184&view=next , ils font un receive après la condition, mais vu qu'en #1 tu dit que la condition se valide pas... (enfin, faut rajouter que dans le lien donné, il précise que son code est buggué et pas terminé)

    edit : tu peut poster les lignes où tu déclare tes librairies et includes? Apparemment l'ordre dans lequel on les défini a une importance

    re-edit : il fait pas un if (usb_cdc_kbhit() == ..) mais un :

    Code:
    if (usb_cdc_kbhit())
    {
      receive();
      ...
    Dernière modification par antoine6 ; 02/04/2010 à 08h23.

  8. #7
    invitead51e543

    Re : Usb + pic18f4550

    #define __USB_PIC_PERIF__ 1

    //if using a 16bit PIC on an Explorer 16 borad, set this to 1
    #define __USB_PIC_EXPLORER16__ 0

    #if (defined(__PCM__) || defined(__PCB__))
    #error USB CDC Library requires PIC18, PIC24, dsPIC30 or dsPIC33
    #endif

    #if __USB_PIC_PERIF__
    #DEFINE LED1 PIN_A5
    #if defined(__PCH__)
    #include <18F4550.h>
    #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NO DEBUG,USBDIV,PLL5,CPUDIV1,VREG EN
    #use delay(clock=48000000)
    #define ADC=10;
    #elif defined(__PCD__)
    #include <24FJ256GB110.h>

    #fuses HS,PR_PLL,NOWDT,DISUVREG,ICSP2

    #if __USB_PIC_EXPLORER16__
    #use delay(clock=32M) //8MHz clock is 4x because of PLL
    #fuses PLL2 //Divide 8MHz by 2 to get the 4MHz required for USB
    #pin_select U1TX = PIN_F5
    #pin_select U1RX = PIN_F4
    #endif
    #endif
    #else //use the National USBN960x peripheral
    #DEFINE LED1 PIN_B3
    #include <18F452.h>
    #fuses HS,NOWDT,NOPROTECT,NOLVP
    #use delay(clock=20000000)
    #endif //endif check to see which peripheral to use

    #if __USB_PIC_PERIF__ && defined(__PCH__)
    #define USB_CON_SENSE_PIN PIN_C0
    #endif

    #include <usb_bootloader.h>
    #include <usb_cdc.h>

    Voilà c'est les configuations ; le début est un peu long mais ce programme peut fonctionner pour plusieurs PICs...

  9. #8
    antoine6

    Re : Usb + pic18f4550

    T'es sous CCS ou autre?

    Je voie pas de #include <stdlib.h> , il est inclus dans les <18Fxxx.h>?

  10. #9
    invitead51e543

    Re : Usb + pic18f4550

    Citation Envoyé par antoine6 Voir le message

    Code:
    if (usb_cdc_kbhit())
    {
      receive();
      ...
    Son receive permet juste d'allumer et d'éteindre une LED...

  11. #10
    invitead51e543

    Re : Usb + pic18f4550

    Je suis sous PCWHD ; en fait je ne sais même pas si il s'agit de CCS car quand j'ouvre mon index d'aide, il s'appelle CCS C Compiler...

  12. #11
    antoine6

    Re : Usb + pic18f4550

    PCWHD et les autres PC... c'est les logiciels de CCS, tu peut aller fouiller sur leur forum : http://www.ccsinfo.com/forum/

    Je regarde comment est fait le usb_cdc.h et je reviens

    edit :
    Code:
    //// usb_cdc_kbhit() - Returns TRUE if there is one or more          ////
    ////      character received and waiting in the receive buffer.      ////
    => Il va jamais te retourner un caractere

    Il faut utiliser:

    Code:
    //// usb_cdc_getc() - Gets a character from the receive buffer.  If  ////
    ////      there is no data in the receive buffer it will wait until  ////
    ////      there is data in the receive buffer.  If you do not want   ////
    ////      to wait in an infinit loop, use usb_cdc_kbhit() first to   ////
    ////      check if there is data before calling usb_cdc_getc().      ////

  13. #12
    invitead51e543

    Re : Usb + pic18f4550

    ok je te remercie...

  14. #13
    invitead51e543

    Re : Usb + pic18f4550

    Cela me donnerait donc ce programme?

    void main(void)
    {
    while (TRUE)
    {
    char c;
    if (usb_cdc_kbhit())
    {
    c=usb_cdc_getc();
    printf(usb_cdc_putc, " Le resultat est = %c \n\r", c);
    }
    }
    }

    Merci de vos réponses

Discussions similaires

  1. Débuter avec un PIC18F4550 USB
    Par invitefa17a68f dans le forum Électronique
    Réponses: 11
    Dernier message: 22/03/2012, 21h40
  2. timer0 pic18f4550
    Par inviteb7e0a565 dans le forum Électronique
    Réponses: 20
    Dernier message: 26/08/2009, 21h47
  3. USB/PIC18F4550: PB rebond interrupteur
    Par invitefb2b8d4f dans le forum Électronique
    Réponses: 18
    Dernier message: 07/06/2009, 00h15
  4. envoyer float par USB- PIC18f4550
    Par inviteb7e0a565 dans le forum Électronique
    Réponses: 9
    Dernier message: 28/07/2008, 20h18
  5. Probleme PIC18F4550 et USB
    Par invite89303051 dans le forum Électronique
    Réponses: 0
    Dernier message: 14/07/2008, 22h59
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...