Subversion Repositories Code-Repo

Rev

Rev 264 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 264 Rev 268
Line 309... Line 309...
309
 
309
 
310
void __ISR(_ETH_VECTOR, ipl1) __ETH_Interrupt_Handler(void) {
310
void __ISR(_ETH_VECTOR, ipl1) __ETH_Interrupt_Handler(void) {
311
//    uint32_t value = ETHIRQ;
311
//    uint32_t value = ETHIRQ;
312
    if (ETHIRQbits.TXBUSE) {
312
    if (ETHIRQbits.TXBUSE) {
313
        // TX bus error, something -should- be done
313
        // TX bus error, something -should- be done
314
        Reset_Board(BOARD_MODE_IDLE);
314
        Reset_Board(BOARD_MODE_ETHERNET);
315
        ETHIRQbits.TXBUSE = 0;
315
        ETHIRQbits.TXBUSE = 0;
316
    }
316
    }
317
    if (ETHIRQbits.RXBUSE) {
317
    if (ETHIRQbits.RXBUSE) {
318
        // RX bus error, something -should- be done
318
        // RX bus error, something -should- be done
319
        Reset_Board(BOARD_MODE_IDLE);
319
        Reset_Board(BOARD_MODE_ETHERNET);
320
        ETHIRQbits.RXBUSE = 0;
320
        ETHIRQbits.RXBUSE = 0;
321
    }
321
    }
322
    if (ETHIRQbits.RXDONE) {
322
    if (ETHIRQbits.RXDONE) {
323
        // Call the previously saved function
323
        // Call the previously saved function
324
        if (eth_data->rx_callback != NULL)
324
        if (eth_data->rx_callback != NULL)
Line 340... Line 340...
340
        ETHIRQbits.TXABORT = 0;
340
        ETHIRQbits.TXABORT = 0;
341
    }
341
    }
342
    if (ETHIRQbits.RXBUFNA) {
342
    if (ETHIRQbits.RXBUFNA) {
343
        // This is a serious error!
343
        // This is a serious error!
344
        // TODO: handle this
344
        // TODO: handle this
345
        Reset_Board(BOARD_MODE_IDLE);
345
        Reset_Board(BOARD_MODE_ETHERNET);
346
        ETHIRQbits.RXBUFNA = 0;
346
        ETHIRQbits.RXBUFNA = 0;
347
    }
347
    }
348
    if (ETHIRQbits.RXOVFLW) {
348
    if (ETHIRQbits.RXOVFLW) {
349
        // This is a serious error!
349
        // This is a serious error!
350
        // TODO: handle this
350
        // TODO: handle this
351
        Reset_Board(BOARD_MODE_IDLE);
351
        Reset_Board(BOARD_MODE_ETHERNET);
352
        ETHIRQbits.RXOVFLW = 0;
352
        ETHIRQbits.RXOVFLW = 0;
353
    }
353
    }
354
 
354
 
355
    IFS1bits.ETHIF = 0;
355
    IFS1bits.ETHIF = 0;
356
}
356
}
357
357