make LF sampling ACK to fix USB timing issue in em410xwatch

This commit is contained in:
adam@algroup.co.uk 2010-02-04 23:15:53 +00:00
parent c37d2e7078
commit bdd1de1b02
3 changed files with 5 additions and 1 deletions

View file

@ -568,11 +568,14 @@ void ListenReaderField(int limit)
void UsbPacketReceived(BYTE *packet, int len)
{
UsbCommand *c = (UsbCommand *)packet;
UsbCommand ack;
switch(c->cmd) {
#ifdef WITH_LF
case CMD_ACQUIRE_RAW_ADC_SAMPLES_125K:
AcquireRawAdcSamples125k(c->arg[0]);
ack.cmd = CMD_ACK;
UsbSendPacket((BYTE*)&ack, sizeof(ack));
break;
#endif
@ -719,7 +722,6 @@ void UsbPacketReceived(BYTE *packet, int len)
}
case CMD_DOWNLOADED_SIM_SAMPLES_125K: {
UsbCommand ack;
BYTE *b = (BYTE *)BigBuf;
memcpy(b+c->arg[0], c->d.asBytes, 48);
//Dbprintf("copied 48 bytes to %i",b+c->arg[0]);

View file

@ -266,6 +266,7 @@ int CmdLFRead(const char *Cmd)
return 0;
}
SendCommand(&c);
WaitForResponse(CMD_ACK);
return 0;
}

View file

@ -125,6 +125,7 @@ void UsbCommandReceived(UsbCommand *UC)
for(i=0; i<48; i++) sample_buf[i] = UC->d.asBytes[i];
received_command = UC->cmd;
return;
case CMD_ACQUIRE_RAW_ADC_SAMPLES_125K:
case CMD_DOWNLOADED_SIM_SAMPLES_125K:
if (UC->cmd != CMD_ACK) goto unexpected_response;
// got ACK