INTERRUPT(_U1RXInterrupt, 6) while (U1STAbits.URXDA) c30_cbuf_put(&uart_rx, U1RXREG);
#endif // C30_UTILS_H #include "c30_utils.h" // Force buffer into Y data space for faster DSP-style UART processing unsigned char Y_DATA_SPACE uart_rx_buf[64]; // 64 bytes, must be power of two c30_cbuf_t uart_rx; mplab c30 compiler
// ------------------------------------------------------------ // 3. ISR MACRO (fixes C30's verbose/error-prone vector syntax) // ------------------------------------------------------------ #define INTERRUPT(vector, priority) void ((interrupt, auto_psv)) _ ## vector (void) INTERRUPT(_U1RXInterrupt, 6) while (U1STAbits