cancel
Showing results for 
Search instead for 
Did you mean: 

Bug in PMAToUserBufferCopy()/ GetEPRxCount()

nurist_m
Associate II
Posted on June 14, 2009 at 13:46

Bug in PMAToUserBufferCopy()/ GetEPRxCount()

2 REPLIES 2
nurist_m
Associate II
Posted on May 17, 2011 at 13:14

It seems very much like a bug!!

The rub is in the Callback-routines. Maybe this is only a workaround to real problem but it works!

This is the new Callback: (all in bold is added/changed)

count_out += GetEPRxCount(ENDP3); :-W

PMAToUserBufferCopy(buffer_out, ENDP3_RXADDR, 1);:-W

SetEPRxValid(ENDP3);

buffer_rx[count_out-1] = buffer_out[0]; :-W

buffer_out has become only one byte

all the characters are added succsevily to buffer_rx, which is 64 bytes and each time count_out is incremented!

CU

nurist_m
Associate II
Posted on May 17, 2011 at 13:14

Hi folks,

i am having an isue using the virtual com port project. In my project i sat up both buffers to 64 bytes. Data is send in portions of 60bytes. Sending form device to host (count_in, buffer_in) is no problem. Sending from host to device(count_out, buffer_out) isn't working properly.

This is the code:

while(count_out < 13){}; // expecting 13 bytes

for(i=0;i

TransmittedString[i] = buffer_out[i];

}

The code never ever leaves the 'while' part because 'count_out' is always '1'. Even if the host send more than one byte. This behaviour workes fine if you use Windows Terminal because this will send every character seperately by the time you press a button. It is not working with sending a string on a row.

Has anyone any suggestions??

Thanks!!