пишу в борланде 2007 для микросхемы ft232 программу, и для записи данных в микросхему использую функцию приведённую ниже
CODE
unsigned char FT232::WriteDataToPrinter(unsigned char *lpBuffer, unsigned long int *BytesToWrite, unsigned long int *BytesWritten)
{
// unsigned long int SizeTxBuffer = 1;
unsigned long int CurrentSizePacket;
if ( OpenedDev() )
{
while (*BytesToWrite)
{
if (*BytesToWrite >= 256)
CurrentSizePacket = 256;
else
CurrentSizePacket = *BytesToWrite;
*BytesWritten = 0;
ft_status_print = FT_Write(ft_printer, lpBuffer, CurrentSizePacket, BytesWritten);
assert(bytes_written);
assert(!ft_status_print);
if (ft_status_print) {
open = false;
return FT_ERROR_WRITE;
}
else {
#ifndef DISABLE_THREAD
ResumeInThr();
#endif
*BytesToWrite -= *BytesWritten; //calculate a last data
assert(*BytesToWrite >= 0);
lpBuffer += *BytesWritten; //shift block data to temp_size step
}
}
}
return 0; //it's ok
}
иногда при повторном отправлении данных программа зависает на стандартной функции
CODE
FT_Write(ft_printer, lpBuffer, CurrentSizePacket, BytesWritten);
в чём может быть проблема?? кто-нибудь сталкивался с чем-нить подобным?
ошибка совершенно спонтанна, зависит наверно от погоды и времени суток


з.ы. устройство открывается нормально, при отключении устр-ва и последующем вызове функции возвращается ошибка, как положено.
з.з.ы. если ещё необходимы какие-либо куски кода, я готов показать