salut !
j'explique mon cas je veux tester l'usb du 18F4550 j'utilise mpusbapi.dll avec visual c++,j'ai fai une application simple qui renvoi une entree numerique du pic (quand je press sur un bouton sur le port b un label(vc++) s'allum en vert et quand je lache le bouton le label s'eteind ),sa marche bien avec un bouton mais quand j'utilise les 8 sa marche pas
j pas pu trouver l'erreur
le firmware :
void ServiceRequests(void)
{
USBGenRead((byte*)&dataPacket, sizeof(dataPacket));
if(dataPacket.Data[0]==1)
{
if(PORTBbits.RB0==1)
dataPacket.Data[1]=1;
if(PORTBbits.RB1==1)
dataPacket.Data[2]=2;
if(PORTBbits.RB2==1)
dataPacket.Data[3]=3;
if(PORTBbits.RB3==1)
dataPacket.Data[4]=4;
if(PORTBbits.RB4==1)
dataPacket.Data[5]=5;
if(PORTBbits.RB5==1)
dataPacket.Data[6]=6;
if(PORTBbits.RB6==1)
dataPacket.Data[7]=7;
if(PORTBbits.RB7==1)
dataPacket.Data[8]=8;
USBGenWrite((byte*)&dataPacket ,64);}
}
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<
vc++:
SendData[0]=1;
myOutPipe = MPUSBOpen(0,vid_pid,out_pipe,M P_WRITE,0);
MPUSBWrite(myOutPipe,SendData, SendLength,&SentDataLength,100 );
MPUSBClose(myOutPipe);
myInPipe = MPUSBOpen(0,vid_pid,in_pipe,MP _READ,0);
MPUSBRead(myInPipe,ReceiveData , ExpectedReceiveLength,&Receive Length,100);
MPUSBClose(myInPipe);
a1=ReceiveData[1];
a2=ReceiveData[2];
a3=ReceiveData[3];
a4=ReceiveData[4];
a5=ReceiveData[5];
a6=ReceiveData[6];
a7=ReceiveData[7];
a8=ReceiveData[8];
r1=(int)a1;
r2=(int)a2;
r3=(int)a3;
r4=(int)a4;
r5=(int)a5;
r6=(int)a6;
r7=(int)a7;
r8=(int)a8;
if(r1==1)
label1->BackColor::set(Color::LightGr een);
else
label1->BackColor::set(Color::LightGr ay);
if(r2==2)
label2->BackColor::set(Color::LightGr een);
else
label2->BackColor::set(Color::LightGr ay);
if(r3==3)
label3->BackColor::set(Color::LightGr een);
else
label3->BackColor::set(Color::LightGr ay);
if(r4==4)
label4->BackColor::set(Color::LightGr een);
else
label4->BackColor::set(Color::LightGr ay);
if(r5==5)
label5->BackColor::set(Color::LightGr een);
else
label5->BackColor::set(Color::LightGr ay);
if(r6==6)
label6->BackColor::set(Color::LightGr een);
else
label6->BackColor::set(Color::LightGr ay);
if(r7==7)
label7->BackColor::set(Color::LightGr een);
else
label7->BackColor::set(Color::LightGr ay);
if(r8==8)
label8->BackColor::set(Color::LightGr een);
else
label8->BackColor::set(Color::LightGr ay);
}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>><
voila le bou du code du pic et visual c++
merci pour votre aide
-----