Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема записи в 4 конечную точку AT89C5131
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
Sevens
Есть устройство на AT89C5131, программа на Дельфи и драйвер.

Возникает следующая проблема: пишу в Дельфи в 4 конечную точку блоки по 32 байта, все 32 байта код #49. В устройстве же считывается иногда что-то другое (из 32 байт 30 правильные, в 2х ошибка).
Смотрю в DebugView, что приходит в буфере запроса на запись - всё четко.
Тип переда - Interrupt, максимальный размер пакета - 32 байта (пробовал 64, всё тоже самое).

Но стоит только вместо 4 начать писать во вторую, то всё приходит нормально. В чем может быть проблема?


Заранее спасибо!
Sevens
Есть мысль, что что-то неправильно делаю при считывании из 4й конечной точки, т.к. с 3ей конечной точкой тоже проблем никаких. Сейчас процидура считывания из 4й конечно точки выглядит так:

void usb_recieve(void)
{
unsigned char i,tmp;

Usb_select_ep(4);

br=Usb_get_nb_byte();

for(i=0;i<32;i++)
{
SndBuf[i]=Usb_read_byte();
if(SndBuf[i]!=49)
Bytewr(0xC0,SndBuf[i]);
}


if(data0==0)
{
Usb_clear_rx_bank0();
data0=1;
}
else
{
Usb_clear_rx_bank1();
data0=0;
}

}

Также пробовал вместо
if(data0==0)
{
Usb_clear_rx_bank0();
data0=1;
}
else
{
Usb_clear_rx_bank1();
data0=0;
}
просто обнулять оба бита rxbank1 и rxbank0, тоже самое
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.