Цитата
// If a FIFO slot is open, write a new packet to the IN FIFO
if (!(bCsrL & rbInINPRDY)){
pEpInStatus->uNumBytes = NumBytes;
pEpInStatus->pData = (BYTE*)DataToWrite;
// Write <uNumBytes> bytes to the <bEp> FIFO
FIFOWrite(pEpInStatus->bEp, pEpInStatus->uNumBytes,(BYTE*)pEpInStatus->pData);
// Set Packet Ready bit (INPRDY)
UWRITE_BYTE(EINCSRL, rbInINPRDY);
}
if (!(bCsrL & rbInINPRDY)){
pEpInStatus->uNumBytes = NumBytes;
pEpInStatus->pData = (BYTE*)DataToWrite;
// Write <uNumBytes> bytes to the <bEp> FIFO
FIFOWrite(pEpInStatus->bEp, pEpInStatus->uNumBytes,(BYTE*)pEpInStatus->pData);
// Set Packet Ready bit (INPRDY)
UWRITE_BYTE(EINCSRL, rbInINPRDY);
}
Короче говоря у меня на второй раз этот кусок затыкается - при первой проверке у меня FIFO slot NOT is open
Я же вызываю функцию BulkOrInterruptIn(...) из функции main().
И по идее после того как произойдет передача буфера FIFO вызовется прерывание. КАК ЕГО ОБРАБАТЫВАТЬ ?
Что нужно делать в USB_ISR()
Цитата
void USB_ISR () interrupt 8{
....
// Endpoint1 IN
if (bInInt & rbIN1){
ЧТО ДЕЛАТЬ СДЕСЬ ???
}
....
}
....
// Endpoint1 IN
if (bInInt & rbIN1){
ЧТО ДЕЛАТЬ СДЕСЬ ???
}
....
}
