#include #include #include #include #pragma config LVP=OFF #pragma config WDT=OFF char motors[4]; void rx_handler (void); void main() { OpenUSART (USART_TX_INT_OFF & USART_RX_INT_ON & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_LOW, 130); RCONbits.IPEN = 1; IPR1bits.RCIP = 1; INTCONbits.GIEH = 1; OpenTimer2(TIMER_INT_OFF & T2_PS_1_1 & T2_POST_1_8); OpenPWM1(0xff); OpenPWM2(0xff); while(1) { } } #pragma code rx_interrupt = 0x8 void rx_int (void) { _asm goto rx_handler _endasm } #pragma code #pragma interrupt rx_handler void rx_handler (void) { int i; getsUSART(motors, 4); while(BusyUSART()); putcUSART(motors[0]); putcUSART(motors[1]); putcUSART(motors[2]); putcUSART(motors[3]); PIR1bits.RCIF = 0; }