write(0x00,1); //select
write(0xf1,1); //f1:Ack c in
write(0x01,1); //01:Select End1
write(0xf1,1); //ack c out
USART_Transmit(0xA1);
write(0x80,1);//80:Read Endpoint Status
tmp = read();
USART_Transmit(tmp);
USART_Transmit(0xA2);
write(0x40,1); //read last transaction status
tmp = read();
USART_Transmit(tmp);
write(0x00,1); //select
read();
write(0xf0,1);
read();
tmp = read();
lastsetup[0] = read();//first bit
lastsetup[1] = read();
lastsetup[2] = read();
lastsetup[3] = read();
lastsetup[4] = read();
lastsetup[5] = read();
lastsetup[6] = read();
lastsetup[7] = read();
USART_Transmit(tmp);
for(i=0;i