реклама на сайте
подробности

 
 
> Проблема записи в 4 конечную точку AT89C5131
Sevens
сообщение Oct 25 2006, 11:30
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 23
Регистрация: 5-08-06
Пользователь №: 19 337



Есть устройство на AT89C5131, программа на Дельфи и драйвер.

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

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


Заранее спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Sevens
сообщение Oct 25 2006, 12:34
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 23
Регистрация: 5-08-06
Пользователь №: 19 337



Есть мысль, что что-то неправильно делаю при считывании из 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, тоже самое
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 23:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01416 секунд с 7
ELECTRONIX ©2004-2016