void USART2_IRQHandler(void){ UART_DESC * urt = uartRegister[2]; urtRcvRq(urt); USART_ClearITPendingBit(urt->usartBase, USART_IT_RXNE); NVIC_ClearPending(USART2_IRQn); }
void USBINT0_IRQHandler() { uint8_t intrusb = GET8(USB0_CORE+INTRUSB); uint16_t intrtx = GET16(USB0_CORE+INTRTX); uint16_t intrrx = GET16(USB0_CORE+INTRRX); NVIC_ClearPending(USBINT0_IRQn); if(intrusb & 0b10) // resume interrupt { // resume routine USB_DBG("resume\n"); } if(intrusb & 0b1000000) // session req interrupt { // session req routine USB_DBG("session req\n"); } if(intrusb & 0b10000000) // Vbus error interrupt { // Vbus error routine USB_DBG("vbus\n"); } if(intrusb & 0b1) // suspend interrupt { // suspend routine USB_DBG("suspend\n"); } if(intrusb & 0b10000) // connect interrupt { // connect routine USB_DBG("connect\n"); } if(intrusb & 0b100000) // disconnect interrupt { // disconnect routine USB_DBG("disconnect\n"); } if(intrusb & 0b100)// reset/babble interrupt { if(0) // host mode? { // babble routine USB_DBG("babble\n"); } else { // reset routine USB_DBG("reset\n"); } } if(intrusb & 0b1000) // SOF interrupt { // SOF routine USB_DBG("sof\n"); } if(intrtx & 0b1) // endpoint 0 interrupt { // endpoint 0 routine //USB_DBG("EP0\n"); USB0_ENDP0Handler(); } if(intrtx & 0xFFFE) // Tx endpoint interrupt { // Tx endpoint routine USB_DBG("TX\n"); } if(intrrx & 0xFFFE) // Rx endpoint interrupt { // Rx endpoint routine USB_DBG("RX\n"); } }