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

Usb hid



  1. #1
    asirem

    Usb hid

    je cherche a capté un message depuis mon pic via la laison HID utilisons mchid.dll le code et sous delphi
    j arrive pas a detecté sur mon programme coté pc l envoi de la carte


    Code:
     NOTIFY_READ :
            begin
               DevHandle := Msg.LParam; // handle of HID device in this message
               if (GetVendorID(DevHandle) = VENDOR_ID) and (GetProductID(DevHandle) = PRODUCT_ID) then
               begin
                   // read the data - remember that first byte is report ID...
    
                   label4.Caption:='recu' ;
                   Read(DevHandle,@FBufferIn);
    
                   Refresh
    
    
                   
               end;
    cette remarque :

    // read the data - remember that first byte is report ID...

    first byte s report id ? quel ID ?
    je recois l envoi apres que je clique sur bputon ou se trouve write mais je voudrais qu il soit automatique dé que le pic envoi une donné le logiciel la capte
    merci pour votre aide

    -----


  2. #2
    asirem

    Re : Usb hid

    j arrive a envoyez des donneés a la carte ca se passe bien dans ce sens par contre la lecture des donnés depuis la carte sans que le pc demande un envoi là ca ne se fait pas dé qu une donné est presente par contre lorsque je demande l' envoi là le programme se rend compte des donné envoyer par la carte ;
    coté pic en MikroC : l envoi se fait que lorsqu une interruption sur RB0

    Code:
    unsigned char readbuff[64] absolute 0x500;   
    unsigned char writebuff[64] absolute 0x540;
    
    #define TRUE 1
    #define FALSE 0
    
    char cnt;
    char mm1;
    
    
    void interrupt(){
                       if  (INTCON.INT0IF==1) {
                             INTCON.INT0IF=0;
    
                                 mm1=TRUE;
                                           }
         
    
      USB_Interrupt_Proc();
    }
    
    void main(void){
      ADCON1 |= 0x0F;                         // Configure all ports with analog function as digital
      CMCON  |= 7;                            // Disable comparators
            TRISC = 252;
            PORTC = 0;
            TRISD = 0;
            PORTD = 0;
            TRISB = 0b11111001;
            PORTB.RB0= 1;
            INTCON2.INTEDG0=0;
            INTCON.INT0IE= 1;
             mm=FALSE;
    
             
                      mm1=FALSE;
             PORTC.RC0=0;
             PORTC.RC1=0;
             writebuff[0]=0;
      HID_Enable(&readbuff,&writebuff);
          delay_ms(500);
      while(1){
              while(!HID_Read()){
              PORTD=  readbuff[1] ;
    
                                 }
                                 
    
                    if (mm1==TRUE){
                        writebuff[1]=0xFF;
                        writebuff[2]=0x02;
                        writebuff[3]=0x03;
                        writebuff[4]=0x04;
                        writebuff[5]=0x05;
                           for(cnt=6;cnt<64;cnt++)
                           writebuff[cnt]=readbuff[cnt];
    
                        mm1=FALSE;
                while(! HID_Write(&writebuff,64))
                 ;
                  }
    
    
     }
    }

    coté PC j ai fini par utilisé l inteface du site :http://www.roboticus.org/articles/12...ole-hid-part-2
    mais tjr le même probléme la detection des donné ne se fait pas automatiquement

Sur le même thème :